- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 RT-Thread动态内存扩展,使用多块不连续的RAM作为动态内存
当系统中存在多个内存堆的时候,用户只需要在系统初始化时将多个所需的 memheap 初始化,并开启 memheap 功能就可以很方便地把多个 memheap(地址可不连续)粘合起来用于系统的 heap 分配。这颗MCU的SRAM默认是使用192K,即从地址0x20000000开始,最大0x30000(192KB)大小,另外64K的RAM是从地址0x10000000开始,最大0x10000(64KB)大小。同时也能看到heap的可用大小只有2716Byte了,本次新增sram2也就是因为这个可用空间不够。
2024-03-26 17:06:51
1451
原创 RT-Thread GD32F4xx实现SD卡热插拔检测功能
因为如果SD卡一直插着,是没有电平变化的。在上电后拔卡时,检测SD_CHECK_PIN管脚为高电平,此时第二个if条件成立,执行"_sdcard_unmount()",卸载完sd卡后我加了一个卸载事件发送,告知sd卡应用线程,此时sd卡已拔出,关闭所有对sd卡的操作。在上电后插卡时,检测SD_CHECK_PIN管脚为高电平,此时第一个if条件成立,执行"_sdcard_mount()",挂载完sd卡后我加了一个挂载事件发送,告知sd卡应用线程,此时sd卡已插入,可以对sd卡进行操作。
2024-01-12 17:25:09
2002
1
原创 RT-Thread在自己的工程目录搭建工程模板,env配置设置
同样还是board里面的Kconfig文件,打开滑到最底部,根据自己工程实际情况修改库驱动的路径:从官方下载下来的工程源代码,将bsp里面的工程移动到自己想要的目录路径下,更改上面几个配置,打开keil编译无错误,下载程序,在console端用msh命令查看系统信息无问题,至此工程模板就完成。模板工程搭建完成后就根据自己想要增加的功能相应地在env工具里面配置打开,然后scons --target到mdk5,编译调试。
2024-01-11 09:25:33
860
原创 Keil编译生成的bin文件自动以版本号命名
通常代码里会有一个字段专门用来定义软件版本号,每次生成Hex/Bin文件后,要手动重命名文件名,保证和代码中定义的软件版本号一致,这时候就会觉得很麻烦,而且手动输入容易输错啥的。打开指定的源文件(.c/.h等),找到指定的定义软件版本号的字符(通常是用宏定义定义的),将指定的.bin、.hex文件拷贝到指定的目标文件夹,并以上一步获取的软件版本号命名。有的也用__DATA__和__TIME__(其中__DATE_ 和__TIME__是C语言中的内置宏,分别是当前的编译日期和编译时间),也可以。
2024-01-10 20:12:10
2547
原创 RT-Thread Studio创建项目工程(点亮LED灯+JlinkRTT打印输出)
STM32F407运行RT-Thread实时操作系统,RT-Thread Studio创建工程,点亮LED灯,用J-Link RTT作为打印输出功能
2023-04-12 11:16:32
1891
原创 .gitignore文件用法及如何配置
.gitignore文件用法如何配置(笔记).gitignore文件是在git提交的时候用来屏蔽某些你不想提交上去的文件。项目开发过程中,有时候不想把一些文件(如中间文件/编译文件等)提交到git上。这个时候就由.gitignore文件来筛选出不想提交的文件。所筛选的文件/夹将不会被追踪(tracked),push的时候也不会上传到git上。**以下用法配置是单片机C开发项目中的创建我们需要在提交Git之前,需要自己创建一个.gitignore文件,由于Windows下创建文件必须键入文件名,而要
2022-04-18 17:20:19
20250
2
原创 Source insight3.5函数跳转提示multiple locations,即有多处定义的解决办法
在使用Source insight3.5过程中,有时候跳转到函数定义时,会提示有几处地方有该函数,即multiple locations提示,如下图所示:其实这是因为我们经常在改代码的时候,会把工程备份,然后复制一份工程用来修改调试,这时候新复制出来的工程在跳转时就会出现这种状况。这里两个定义点是不同的工程路径下的,一处是在当前新拷贝的工程里,另一处定义的文件是在原有工程里。所以如果跳转到原有工程里的文件,然后修改该函数,那么最终修改的文件是属于原有工程的文件,这样就搞乱了原有工程代码,这很容易出问题。
2021-01-29 18:25:47
1985
原创 忘记电脑登录密码怎么办?不用U盘不用做PE系统,修改电脑登录密码。
有时候遇到电脑登录密码忘记了,或者公司员工离职了未交接电脑登录密码,再或者追踪不到原电脑使用者的用户密码了,这时候就需要破解电脑登录密码了。破解或修改、重置电脑密码有一种常用的方法,那就是用U盘,制作U盘PE系统,这个方法在网上很常见,只需要一个U盘(特别注意,制作U盘PE系统时会格式化U盘内容,最好提前备份好U盘里面的资料)。在身边没有U盘/不会做PE系统怎么办?也可以强制修改电脑密码。下面介绍具体的操作步骤。电脑系统:Win10步骤:一、按电脑开关机键,在系统启动界面时关机,反复开机、关机电脑,
2020-10-27 14:52:30
20279
8
原创 Mifare 1卡(M1卡、IC卡)读写操作及工作原理整理
Mifare 1卡(M1卡、IC卡)读写操作及工作原理整理一、IC卡分类概述IC(Integrated Circuit Card)卡,也称为智能卡、智慧卡、微芯片卡等。IC卡按读写通讯方式分为接触式、非接触式和双界面卡(即同时具备接触式和非接触式通讯接口)。IC卡因为其固有的信息安全、方便携带、比较完善的标准化等优点,广泛应用于身份认证、银行、电信、公共交通、车场管理等领域。例如二代身份证、银行电子钱包、电话卡、公交卡、停车卡等等。按结构分类:存储器卡:普通串行EEPROM存储器,存储方便,信息简单
2020-09-14 22:58:29
46973
5
原创 关于IAR for ARM 8.32打开旧版本工程无法跳转问题(高版本兼容低版本问题)
嵌入式开发/学习过程中,难免需要借鉴别人的工程,但是开发环境的匹配始终是个问题,要么是高版本不兼容低版本,要么是低版本不兼容高版本。低版本不兼容高版本还好,升级到高版本就好了。高版本不兼容低版本就有点麻烦了,本帖主要就是针对高版本不兼容低版本问题做出一些解决办法。最近在开发一个项目,是在原有的产品固件上进行添加功能。其中我自己用的是IAR for ARM 8.32版本,然后原有产品的固件用的是I...
2019-04-28 18:52:03
4839
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人