- 博客(18)
- 资源 (6)
- 收藏
- 关注
原创 正则表达式删除文件中注释和空行
可以通过VSCODE等文本编译器工具的查找替换来删除代码中的注释。通过使用正则表达式匹配注释来删除。最后也可能无法删除完全,可以手动搜索继续删除。
2025-01-06 14:57:50
197
原创 ASM volatile语法
汇编指令 - 这里填写具体的汇编指令。输出操作数 - 表示汇编指令的结果。这些操作数必须出现在汇编指令中,并且必须以 = 或 + 前缀标记。输入操作数 - 表示汇编指令的输入。这些操作数也必须出现在汇编指令中。clobber 列表 - 这是可能被汇编指令修改的寄存器列表。这些寄存器的值在汇编指令执行后可能被改变,因此需要告诉编译器哪些寄存器被修改了。
2024-07-25 14:35:51
1257
原创 WCH RISC-V芯片RTOS移植
WCH RISC-V芯片,FreeRTOS、RT-Thread、LiteOS_m等RTOS移植例程。准备移植芯片:到CH583/CH592/CH32V208/CH32V203/CH32V303/CH32V305/CH32V307。
2023-10-20 16:31:29
537
原创 在MCU上更改默认的printf
MCU中会经常使用printf来打印调试日志,但是编译器默认的printf会使用malloc函数,而且无法自己修改。malloc对于一般MCU平台来说,是有风险的,能不用就不用。本仓库中,查看branch:my-mcu-version。此pirntf库打印都是在栈上进行的,不会使用堆,所以非常安全。至此我们就可以愉快的使用printf_来进行打印了,函数名比默认的printf多了一个下划线。所以移植第三方的printf库函数就是很有必要的事情。2.将输出字节的方法添加到函数中。
2023-03-06 07:37:21
325
原创 将cJson对MCU平台优化
cJson在物联网项目中经常使用,但是cJson毕竟不是专为MCU平台使用,所以做了很多通用性的东西,导致MCU平台项目中即使没有用到malloc,cJson也会将malloc引入到固件中,导致固件过大。2.在cJSON_malloc和cJSON_malloc函数接口中,添加项目的内存分配和释放函数。1.根据mcu编译平台,更改cJSON_INLINE宏定义,该宏为了将函数内联。3.后面一些杂项,如果你的项目中有自己实现的代码,可以更改。本仓库中,查看branch:my-mcu-version。
2023-03-06 07:22:29
547
原创 esp-idf v4.4.4 vscode环境配置注意
从esp-idf v4.4升级到v4.4.4时,VScode竟然报错,提示找不到riscv32-esp-elf-gdb.exe和xtensa-esp32-elf-gdb.exe。
2023-02-08 11:23:34
1175
原创 WCH RISC-V系列芯片使用cJson注意事项
由于cJSON使用了sscanf和sprintf等函数,并默认支持浮点数,无法更改,所以在Mounriver工程的配置中必须使能浮点库,不然cJSON添加number类型值时会返回失败:
2022-09-04 22:09:58
497
原创 哈希匹配算法在单片机上的应用
hash-match哈希匹配算法在单片机上的应用hash-match设计前言在单片机日常开发中,总会遇到根据收到的不同数据执行不同的程序,通常都会使用memcmp或者strcmp进行比较。在匹配数据情况不多时,的确很合适。但是一旦工程量变大,运行速度下降明显。比如有200个数据数组等待比较,每次都要比较很多次。经常可以看到有的工程里switch里面有上百个case strcmp():,极度影响代码运行效率。此时,将key的数组特征化,计算出特有的hash值,来代替比较,就可以给运行速度带来很大
2022-04-03 20:15:12
5335
原创 TinyFlashDB:一种超轻量的可纠错的通用单片机flash存储方案
TFDBTiny Flash Database for MCU.下载链接:https://github.com/smartmx/TFDBTinyFlashDB设计前言在单片机日常开发中,总会需要存储一些信息,这时就需要使用单片机FLASH存储的方案,目前单片机存储的方案有很多,比如:EASYFLASH、FLASHDB、OSAL_NV等等方案,他们程序都非常大,在存储不多的变量时不值得。而且现有方案的代码中很少有考虑到flash写入出错的情况。在实际产品中,嵌入式产品flash写入可能会受各种因素影
2022-03-15 11:28:35
3066
原创 单片机按键开发库-支持连击、长按等操作
Multi-Function Button Dectection单片机开发中,按键是经常需要处理的模块。一个合理的按键开发库可以大大减少开发工作量。Multi-Function Button Dectection,简称MFBD,是一个基于嵌入式C语言的按键库,自动消抖,支持单击、长按单次触发、长按连续触发、双击、多击(三击、四击等等,最大256击)按键操作,可以运行于裸机和各类RTOS。下载链接:https://github.com/smartmx/MFBDMFBD设计理念MFBD尽可能的减少了R
2022-02-27 19:56:37
2634
原创 伪RTOS-ProroThread在CH573芯片上的移植
沁恒的CH573芯片是一个非常便宜好用的蓝牙芯片,采用了RISC内核,主频可达60M,资源是18KB RAM + 448KB FLASH + 32KB DataFlash。在我们使用了芯片的蓝牙库后,会占用很多的ram,快速代码占用4k多,蓝牙协议栈还需要占用5k左右,还需要预留堆栈左右给芯片使用,留给客户的可用ram空间只剩下了8k不到,所以在给ch573移植操作系统时经常会遇到内存不够用的尴尬处境。对于这类情况,一般都是使用蓝牙库自带的TMOS进行任务的调度处理。但是TMOS有一个无法避免的缺陷
2022-01-06 12:25:51
4449
原创 沁恒MCU从EVT中提取文件建立MounRiver独立工程
沁恒的MCU开发包简称EVT,是沁恒官方给出的芯片使用参考例程。EVT开发包为了减少体积,将很多工程的文件复用。当修改一个公用文件(像link.ld,StdPeriphDriver文件夹中的库文件)时,就会导致其他的工程无法使用。然而复制整个EVT然后删除其他无用工程的做法,让每次打开工程都需要层层打开文件夹,比较麻烦。所以本文将讲解如何从EVT中提取文件,建立独立的工程。沁恒系列ARM内核的基本通过KEIL打开,KEIL网上教程众多,所以这里将只讲解在MounRiver下如何根据自己的习惯.
2021-12-29 10:49:52
10693
7
jlink_V498b_jflash.zip
2021-04-29
sourceinsight4_patch_116.zip
2020-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人