- 博客(84)
- 资源 (26)
- 收藏
- 关注
原创 fatfs文件系统移植到dsp28377
(8)ffsystem.c 用于实现内存块空间的分配和释放、创建和删除同步对象、请求和释放授予访问卷的权限等操作。(9)exfuns.c 该文件是额外可选的,用于实现遍历路径下所有的文件、获取硬盘剩余的空间和汇报文件的类型等操作。•文件系统对象(FATFS):用于表示整个文件系统的状态,包括当前挂载的信息、文件系统类型、扇区大小等。文件或文件夹的打开、关闭、创建、移动、删除、复制、读写等操作函数。•文件控制块(FIL):用于表示一个已打开的文件,包含文件的状态、文件的指针、当前位置等信息。
2025-01-02 10:36:01
379
原创 基于ZYNQ7035的PS-linux实现FTP服务器移植
一,下载vsftpd-3.0.3源码,修改Makefile文件,主要改编译器CC = arm-linux-gnueabihf-gcc,用petalinux2023给的编译器arm-xilinx-linux-gnueabi-gcc进行编译,出一堆错,没解决,怀疑是路径问题,遂换成常规arm编译器了。四,保证硬件板的ip和pc机的ip在同一个网段,互相能ping通;二,编译后将vsftpd文件拷贝到arm板的/usr/sbin目录下,将配置文件vsftpd.conf拷贝到arm板的/etc目录下。
2024-11-13 15:32:24
461
1
原创 TMS320F28377d中断优先级与中断嵌套的使用
在进入中断后,CPU默认关全局中断,保存IER,进入ISR,执行完后恢复IER,再开全局中断。但可通过软件使能中断嵌套,就是在中断服务函数中,软件使能相应中断IER,执行EINT,即开全局中断,这样就可以实现中断嵌套了。2.1我们通常讲的PIE中断优先级讲的是当几个中断同时发出请求时,CPU先响应高优先级别的中断,处理完中断服务函数之后,再响应低优先级的中断。这是在无中断嵌套的基础上进行的。2.2无中断嵌套时,cpu的中断服务函数不会被打断,执行完当前中断任务之后按优先级从高到低执行新的中断。
2024-08-14 14:54:10
848
原创 freeRTOS的堆和栈---基于DSP
7,测试发现问题2:任务中使用printf或是sprintf,那么上述配置(任务栈给512)运行时报错,当任务栈给到1k=》去掉printf语句时,more1 = 902[总大小=1k] heapsize1 = 904[总大小=2k];加printf语句时,more1 = 350[总大小=1k] heapsize1 = 904[总大小=2k],1,任务中局部变量属于os堆,而os堆属于系统全局内存,并不属于系统堆;任务2创建时,任务栈给512字节空间,任务2的实现如下:看注释。
2024-01-02 15:26:36
895
原创 McBSP接口概念和使用
McBSP包括一个数据通道和一个控制通道,通过7个引脚与外部设备连接。数据发送引脚DX负责数据的发送,数据接收引脚DR负责数据的接收,发送时钟引脚CLKX,接收时钟引脚CLKR,发送帧同步引脚FSX和接收帧同步引脚FSR提供串行时钟和控制信号。McBSP 是英文Multichannel Buffered Serial Port (多通道缓冲串行口)的缩写McBSP是TI公司生产的数字信号处理芯片的多通道缓冲串行口。
2023-12-07 11:15:21
1929
原创 Qt 获取本机 ip地址方法 获取客户端ip和端口的方法
上述函数返回本机所有IPv4的ip地址列表,比如192.168.1.10|192.166.1.95。
2023-08-03 10:20:01
2506
原创 QT遍历文件夹读取文件名
上述代码中,setFilter()函数可以设置过滤条件,只获取文件或文件夹,并且排除.和..两个特殊目录。最后,entryList()函数返回获取到的所有文件(包括子文件夹中的文件)的列表。然后,使用entryInfoList()函数获取所有文件信息的列表,遍历列表,将文件夹名称添加到一个新列表中。这个时候,可以使用QDir类的entryList()函数获取所有文件名,然后遍历文件名列表,将文件夹名称添加到一个新列表中即可。其中,folder_path为文件夹的路径,files为获取到的所有文件名的列表。
2023-08-02 10:33:14
4195
原创 #pragma pack(1)
编译器为了让程序跑得跟快,减少CPU读取数据的指令周期,对结构体的存储进行优化。实际上第一个char型成员虽然本来只有1个字节,但实际上却占用掉了4个字节,为的是让第二个int型成员的地址能够被4整除。因此实际占用的是8个字节。而#pragma pack(1)让编译器将结构体数据强制连续排列,这样的话,sizeof(struct s)输出的结果就是5了。设置结构体的边界对齐为1个字节,也就是所有数据在内du存中是连续存储的。...
2022-08-31 13:55:48
919
原创 excel中按条件合并字符串
结果却出问题,当B列为空时,C列却显示0,解决方法是选择C列设置单元格格式,选择自定义,在类型处添加[=0]""若B列不为空则将A列和B列合并后给C列;
2022-07-27 17:45:34
1017
原创 QT发布可执行exe
首先用QtCreator新建一个QtQuickApplication项目,直接用默认的项目模版,点击下一步生成项目,项目名字假定是helloqml。上面是最简单的程序发布,实际复杂程序可能还带一些图片文件、数据库文件、配置文件之类的,可以按自己需要添加这些文件到发布文件夹里面。Qt官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆dll,进入这个文件夹,在进入它的子文件夹release里面,找到hellomw.exe,和dll文件、qm文件。...
2022-07-22 11:02:35
3253
原创 c语言用指针改变所指变量的值
char a = 9; char *p = &a; (*p)++; //此代码会使a的值变成10,p指针还是指向a变量的地址 *p++;//此句代码是错的,不会改变a的值,而是将p指针指向a的后一块地址。
2022-06-28 15:39:28
925
原创 嵌入式编程
1,结构体的关键字struct,在定义struct变量时,C语言下struct不能省略,c++语言下struct可以省略。//声明结构体struct example{//do sth};//c声明example变量不可以省略struct关键字struct example Struct1;//c++声明example对象可以省略关键字struct,并且c++里struct和类class基本具有相同的功能,只不过struct里的访问权限默认是public,class默认是private。example
2022-06-27 14:30:58
424
原创 GPS报文中经度纬度的表示方法,以及GGA报文的解析
//将度,分报文转换成度,分,秒 //如接收到的纬度是:4546.40891 //4546.40891/100=45.4640891可以直接读出45度 //4546.40891–45*100=46.40891, 可以直接读出46分 //46.40891–46 =0.40891*60=24.5346读出24秒,
2022-06-27 14:30:17
2866
原创 vs code 乱码解决方法
在使用vs code(版本1.35.0)打开文件时,出现乱码问题,可通过如下方式设置:1、针对单个文件点击右下角的编码按钮(图中为UTF-8),然后选择操作,通过编码重新打开(Reopen with Encoding)之后选择一种编码进行文件打开并保存。2、全局设置文件->首选项->设置进入之后选择文件,点击在setting.json中编辑在setting.json中加入files.autoGuessEncoding": true,并保存重新查
2021-06-07 09:31:12
470
2
原创 eclipse删除多余的工作空间
1,打开eclipse ->Windows2,选择perferences ->输入workspace ->选择多余的工作空间 -> remove ->apply删除你觉得多余的工作空间目录即可
2021-05-21 13:55:50
233
原创 判断字符串是否为utf8
bool is_str_utf8(const char* str){ unsigned int nBytes = 0;//UFT8可用1-6个字节编码,ASCII用一个字节 unsigned char chr = *str; bool bAllAscii = true; for (unsigned int i = 0; str[i] != '\0'; ++i){ chr = *(str + i); //判断是否ASCII编码,如果不是,说明有可能是UTF8,ASCII用7位...
2020-09-02 11:46:47
682
原创 指向结构体的指针和指向结构体指针的指针
例如,struct T *ptr;是指向一个结构体的指针,也可以当做一个结构体数组来用。 可以把结构体当做 int 来看,int* 类型即可以指向一个整数,也可以指向数组。struct T ** ptr, 说白了 就是一个结构体指针的数组,数组内都是指针,还要分配内存。1,结构体指针用法一:struSysInfo *SysInfo;SysInfo = (struSysInfo*)malloc(sizeof(struSysInfo));SysInfo->VERSION = (char
2020-08-13 09:55:59
4611
原创 eclipse 加c99
eclipseC/C++环境下添加C99特性 添加c99新特性:新装好的eclipse不支持c99新特性,如for ( int i = 0; i < 10; i++){ }是会报错的,这时,你可以自行添加C99特性(如果对C99新特性不熟悉,请浏览我上一篇博客)具体步骤:右键点击项目->Properties->C/C++ Build -> Settings ->...
2020-04-27 15:08:03
1181
原创 eclipse 启动时工作空间不见了,如何调出来
Window -> Preferences -> General -> Startup and Shuodown -> Prompt for workspaceon startup
2020-04-23 14:30:46
2732
原创 gdb+gdbserver远程调试技术—调试环境搭建
一,gdb下载 【这里使用gdb-7.12..tar.gz】建议先下载到home目录下的Download文件夹里#cd home#mkdir Download#cd Download#wget http://mirror.bjtu.edu.cn/gnu/gdb/gdb-7.12.1.tar.gz 说明:【http://ftp.gnu.org/gnu/gdb/下载地址...
2020-04-21 16:03:59
371
原创 cmd指令记录
1,跳转指令如果同一个盘就用cd 路径如 cd c:\11如果不同分区就用cd /d 盘符\11如 cd /d c:\11注:进入含有特殊字符目录时需要加引号 例如 cd "c:\program files"2,运行jar软件java -jar 需要运行的jar名称.jar例如:java -jar mqttClientIdGenerator-19.2.0....
2020-04-14 15:24:31
202
原创 QT QTableWidget控件按内容自动换行
1,在初始化时用了如下代码:connect(m_pCurTblWdg,SIGNAL(itemChanged(QTableWidgetItem*)),m_pCurTblWdg,SLOT(resizeRowsToContents()) );能看到效果,内容确实能自动换行,可是出现一个更郁闷的问题,界面卡死,so,该方法用不成;2,在初始化的地方改用如下函数m_pCurTblWdg-...
2019-10-09 16:17:14
5690
3
原创 MSP430 波特率寄存器配置以及反推真实波特率
首先看上图,usart模块的波特率值设定是通过以下三个寄存器决定的:UxBR0,UxBR1,UxMCTL ,其中UxBR1+UxBR0为整数部分,UxMCTL为设定小数部分,两者结合起来为一个16位的字举例1:波特率=9600,时钟源=32768Hz,cpu为F5438;N=32768/9600=3.4133333333 。很明显:UxBR1+UxBR0=3,即UxBR1=0,UxBR...
2019-08-27 11:25:22
1417
原创 QT登录窗口闪退的代码分析
最初使用:frmLogin w;w.show();//显示登录界面没问题,登录界面可正常运行加了条件判据发现登录界面闪退if(g_Caller == ia) {//用户调用才显示登录界面 frmLogin w; w.show();//显示登录界面}改成如下写法登录界面正常显示if(g_Caller == ia) {...
2019-07-23 15:20:11
1151
2
原创 IAR查看代码执行时间
例如主频16M,CCSTEP=5000那么对应的代码执行时间=(1/主频)*CCSTEP=1/(16*10^6)*5000=0.0625us*5000=312.5us
2019-02-21 09:33:50
3951
2
转载 source insight工程的相对路径
在创建source insight工程时,最好用“相对路径”,并“将si的工程文件,保存到源码包里”!这样一来,等以后,将源码包放置于硬盘上其他位置,或分发给其他人,或改了源码包的名称,si工程仍然能用!在创建si工程的时候,先指定si工程名和存储位置,再指定工程源码路径了;不要紧接着就添加源文件,而要等设置了相对路径后再添加!相对路径的设置方法如下:菜单项“project->...
2018-10-12 10:02:27
445
转载 删除电脑被占用的串口
第一步:我们可以通过删除注册表中的一个数值项来清除这些配置:在“运行”对话框中输入“regedit”进入注册表;然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001 1101,则从右往左数代表第1,3,4,...
2018-07-03 10:36:55
2574
1
原创 source insight 添加自定义菜单-增加块注释和取消块注释
一,建立可执行宏文件utils.em链接中提供了可用的utils.em文档点击打开链接二,打开source insight,选择菜单Open Project->Base,添加utils.em文件到工程中utils.em文件链接:https://download.youkuaiyun.com/download/celerylxq/11387229三,打开你的工程,选择菜单Opti...
2018-06-01 13:36:33
3588
原创 QT调用VC 动态链接库 解决QT打开或保存文件时闪退的问题
1,MFC需要用静态库2,MFC中字符串编译用unicode(1个汉字占2字节),QT中用的UTF8(1个汉字占3字节),因此MFC中需要将unicode转换成UTF8贴出QT中的代码:QT中做成静态函数,方便其他位置进行调用static QString MfcSaveFile(char *pChName,char *pChFilter)//保存文件static QStrin
2017-08-07 16:49:31
885
原创 QT 分割窗口,并用dialog填充分割的子窗口
网上很多QSplitter的例子都是分割完的子窗口带一个edit控件,list控件,可项目需要子窗口用已有dialog进行填充,并能自由切换,遇到最郁闷的问题是填充完后自定义的dialog不能充满整个分割子窗口,现记录下解决方案:QSplitter* mainSplitter; QMainWindow * mainQw;pFrm = new frmFiS
2017-03-17 16:27:19
1910
转载 QTableWidgetItem 按数字排序
QTableWidgetItem* item = new QTableWidgetItem();//按字母排序 item->setText("2");//按数值排序item->setData(Qt::DisplayRole, 2); QTableWidget* widget = ....widget->setItem(row, column, item );
2016-04-14 10:44:07
5175
2
转载 Qt 容器类学习
Qt容器类的分类:1.连续容器:QVector,QLinkedList,QList2.关联容器:QMap,QHash,键值对一、连续容器:1.QVector是一种与数组相似的数据结构,它可以把项存储到内存中相邻近的位置。 与数组的区别在于:可以随时改变大小 优缺点:向向量的末尾添加新的元素是非常快速的,但是在向量的前面或者中间添加新元素是非 常耗时的。
2015-11-19 13:46:49
635
原创 QT int转16进制,并补0
方法一,QString key;key = QString("%1").arg(k,4,16,QLatin1Char('0'));//k为int型或char型都可方法二:char chBuf[20];sprintf(chBuf,"%02x",k);key = QString::fromUtf8(chBuf);或 key = QString(QLatin1String(
2015-09-18 10:31:34
23706
原创 界面添加弹出菜单 隐藏主界面的菜单栏 隐藏右上角最大化最小化按钮
界面添加WM_CONTEXTMENU消息void CIPS4410View::OnContextMenu(CWnd* pWnd, CPoint point) {// TODO: Add your message handler code hereCMenu popMenu;popMenu.LoadMenu(IDR_MENU_TOOL);POINT CurPos;Ge
2015-02-09 20:33:16
1868
原创 listctrl添加背景色,图标去掉阴影
CBitmap bm;bm.LoadBitmap(IDB_BITMAP_7STATE);//IDB_BITMAP_7STATE为bmp资源m_rtuImageList[iPortID - 1].Create(48,48,ILC_COLOR32|ILC_MASK,0,0);//m_rtuImageList为imagelist控件对象m_rtuImageList[iPortID - 1].
2015-02-09 20:26:01
1397
原创 vc6 弹出对话框添加菜单,添加256真彩色工具栏
CMenu newMenu;// 加载菜单资源newMenu.LoadMenu(IDR_MENU_DLG); //IDR_MENU_DLG为新建的菜单资源// 为对话框设置菜单this->SetMenu(&newMenu);//添加工具栏/*创建第二个工具栏*/if (!m_myToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CH
2015-02-09 20:20:35
1666
原创 stm32建c++与c混合工程遇到的问题及解决
1. 以前的库函数怎么使用?在函数声明前加上 extern "C" 就可以了,因为C++支持函数重载之类的东东,所以生成的目标代码的名字和C会有些不同,用extern "C"强制成C语言的名字规则。现在新版本的库好像已经加上了,这里顺便问一下,新版本的库在官网的哪里下载?我不要一点就直接弹出下载的链接新版的库的头文件前面是#ifdef __cplusplusextern "C"
2014-07-19 14:56:41
7031
原创 VC 程序重启自己
void CTransFileDlg::OnClose(){ char pBuf[MAX_PATH];//获取应用程序完全路径,比 GetCurrentDirectory 好用多了GetModuleFileName(NULL,pBuf,MAX_PATH);STARTUPINFO startupinfo;PROCESS_INFORMATION proc_info;
2014-07-03 13:32:16
4508
QT调用MFC生成的动态链接库,功能为解决QT中打开文件QFileDialog时某些机器闪退的问题
2017-08-07
让VC60支持256真彩色图标.rar
2010-08-19
TCP-IP详解卷.rar
2010-08-19
CRC校验器,用VC实现算法,生成DLL动态连接库,在VB中调用,都是源码
2010-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人