<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[偶可不乖呢]]></title><description><![CDATA[努力争取不挨饿。]]></description><link>https://blog.csdn.net/mx1117</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; mx1117]]></copyright><item><title><![CDATA[复刻SSCOM串口调试器：PyCom与PyCom32]]></title><link>https://blog.csdn.net/mx1117/article/details/168216020</link><guid>https://blog.csdn.net/mx1117/article/details/168216020</guid><author>mx1117</author><pubDate>Sat, 17 Oct 2026 08:45:00 +0800</pubDate><description><![CDATA[老工程师熟悉的那个 SSCOM，干净了、现代了，而且能回到Win7 那些还插在工控机、老测试台上的机器上继续干活。99+106 项测试、两台Win7 真机验收、13 轮审查、六篇工程文档——这个项目把「复刻」二字当成规格来执行，也把「维护」当成产品来做。欢迎试用与反馈（IssuesMIT 许可，无广告，不联网。项目与文档都在，可执行文件在Releases。]]></description><category></category></item><item><title><![CDATA[正则表达式删除文件中注释和空行]]></title><link>https://blog.csdn.net/mx1117/article/details/144963970</link><guid>https://blog.csdn.net/mx1117/article/details/144963970</guid><author>mx1117</author><pubDate>Mon, 06 Jan 2025 14:57:50 +0800</pubDate><description><![CDATA[可以通过VSCODE等文本编译器工具的查找替换来删除代码中的注释。通过使用正则表达式匹配注释来删除。最后也可能无法删除完全，可以手动搜索继续删除。]]></description><category></category></item><item><title><![CDATA[NAS CPU总结]]></title><link>https://blog.csdn.net/mx1117/article/details/143886852</link><guid>https://blog.csdn.net/mx1117/article/details/143886852</guid><author>mx1117</author><pubDate>Tue, 19 Nov 2024 15:30:17 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[ASM volatile语法]]></title><link>https://blog.csdn.net/mx1117/article/details/140689496</link><guid>https://blog.csdn.net/mx1117/article/details/140689496</guid><author>mx1117</author><pubDate>Thu, 25 Jul 2024 14:35:51 +0800</pubDate><description><![CDATA[汇编指令 - 这里填写具体的汇编指令。输出操作数 - 表示汇编指令的结果。这些操作数必须出现在汇编指令中，并且必须以 = 或 + 前缀标记。输入操作数 - 表示汇编指令的输入。这些操作数也必须出现在汇编指令中。clobber 列表 - 这是可能被汇编指令修改的寄存器列表。这些寄存器的值在汇编指令执行后可能被改变，因此需要告诉编译器哪些寄存器被修改了。]]></description><category></category></item><item><title><![CDATA[Mifare Classic Crypto1加密流程]]></title><link>https://blog.csdn.net/mx1117/article/details/134943950</link><guid>https://blog.csdn.net/mx1117/article/details/134943950</guid><author>mx1117</author><pubDate>Tue, 12 Dec 2023 10:52:52 +0800</pubDate><description><![CDATA[当Reader准备进行密钥认证时，发送至NFC卡片。]]></description><category></category></item><item><title><![CDATA[WCH RISC-V芯片RTOS移植]]></title><link>https://blog.csdn.net/mx1117/article/details/133948977</link><guid>https://blog.csdn.net/mx1117/article/details/133948977</guid><author>mx1117</author><pubDate>Fri, 20 Oct 2023 16:31:29 +0800</pubDate><description><![CDATA[WCH RISC-V芯片，FreeRTOS、RT-Thread、LiteOS_m等RTOS移植例程。准备移植芯片：到CH583/CH592/CH32V208/CH32V203/CH32V303/CH32V305/CH32V307。]]></description><category></category></item><item><title><![CDATA[在MCU上更改默认的printf]]></title><link>https://blog.csdn.net/mx1117/article/details/129353957</link><guid>https://blog.csdn.net/mx1117/article/details/129353957</guid><author>mx1117</author><pubDate>Mon, 06 Mar 2023 07:37:21 +0800</pubDate><description><![CDATA[MCU中会经常使用printf来打印调试日志，但是编译器默认的printf会使用malloc函数，而且无法自己修改。malloc对于一般MCU平台来说，是有风险的，能不用就不用。本仓库中，查看branch：my-mcu-version。此pirntf库打印都是在栈上进行的，不会使用堆，所以非常安全。至此我们就可以愉快的使用printf_来进行打印了，函数名比默认的printf多了一个下划线。所以移植第三方的printf库函数就是很有必要的事情。2.将输出字节的方法添加到函数中。]]></description><category></category></item><item><title><![CDATA[将cJson对MCU平台优化]]></title><link>https://blog.csdn.net/mx1117/article/details/129353932</link><guid>https://blog.csdn.net/mx1117/article/details/129353932</guid><author>mx1117</author><pubDate>Mon, 06 Mar 2023 07:22:29 +0800</pubDate><description><![CDATA[cJson在物联网项目中经常使用，但是cJson毕竟不是专为MCU平台使用，所以做了很多通用性的东西，导致MCU平台项目中即使没有用到malloc，cJson也会将malloc引入到固件中，导致固件过大。2.在cJSON_malloc和cJSON_malloc函数接口中，添加项目的内存分配和释放函数。1.根据mcu编译平台，更改cJSON_INLINE宏定义，该宏为了将函数内联。3.后面一些杂项，如果你的项目中有自己实现的代码，可以更改。本仓库中，查看branch：my-mcu-version。]]></description><category></category></item><item><title><![CDATA[esp-idf v4.4.4 vscode环境配置注意]]></title><link>https://blog.csdn.net/mx1117/article/details/128932237</link><guid>https://blog.csdn.net/mx1117/article/details/128932237</guid><author>mx1117</author><pubDate>Wed, 08 Feb 2023 11:23:34 +0800</pubDate><description><![CDATA[从esp-idf v4.4升级到v4.4.4时，VScode竟然报错，提示找不到riscv32-esp-elf-gdb.exe和xtensa-esp32-elf-gdb.exe。]]></description><category></category></item><item><title><![CDATA[BLE LL的SN和NESN]]></title><link>https://blog.csdn.net/mx1117/article/details/128903315</link><guid>https://blog.csdn.net/mx1117/article/details/128903315</guid><author>mx1117</author><pubDate>Mon, 06 Feb 2023 16:03:13 +0800</pubDate><description><![CDATA[BLE LL的SN和NESN]]></description><category></category></item><item><title><![CDATA[WCH RISC-V系列芯片使用cJson注意事项]]></title><link>https://blog.csdn.net/mx1117/article/details/126695512</link><guid>https://blog.csdn.net/mx1117/article/details/126695512</guid><author>mx1117</author><pubDate>Sun, 04 Sep 2022 22:09:58 +0800</pubDate><description><![CDATA[由于cJSON使用了sscanf和sprintf等函数，并默认支持浮点数，无法更改，所以在Mounriver工程的配置中必须使能浮点库，不然cJSON添加number类型值时会返回失败：]]></description><category></category></item><item><title><![CDATA[WCH系列芯片CoreMark跑分]]></title><link>https://blog.csdn.net/mx1117/article/details/126094948</link><guid>https://blog.csdn.net/mx1117/article/details/126094948</guid><author>mx1117</author><pubDate>Mon, 01 Aug 2022 09:58:51 +0800</pubDate><description><![CDATA[沁恒微电子WCH系列芯片Coremark性能跑分测试。CH32V307/CH32V208/CH582]]></description><category></category></item><item><title><![CDATA[CH32V307 LwIP移植使用]]></title><link>https://blog.csdn.net/mx1117/article/details/124316014</link><guid>https://blog.csdn.net/mx1117/article/details/124316014</guid><author>mx1117</author><pubDate>Thu, 21 Apr 2022 10:51:13 +0800</pubDate><description><![CDATA[CH32V307移植使用LWIP 2.1.3。]]></description><category></category></item><item><title><![CDATA[哈希匹配算法在单片机上的应用]]></title><link>https://blog.csdn.net/mx1117/article/details/123943446</link><guid>https://blog.csdn.net/mx1117/article/details/123943446</guid><author>mx1117</author><pubDate>Sun, 03 Apr 2022 20:15:12 +0800</pubDate><description><![CDATA[hash-match
哈希匹配算法在单片机上的应用
hash-match设计前言
在单片机日常开发中，总会遇到根据收到的不同数据执行不同的程序，通常都会使用memcmp或者strcmp进行比较。
在匹配数据情况不多时，的确很合适。
但是一旦工程量变大，运行速度下降明显。比如有200个数据数组等待比较，每次都要比较很多次。
经常可以看到有的工程里switch里面有上百个case strcmp():，极度影响代码运行效率。
此时，将key的数组特征化，计算出特有的hash值，来代替比较，就可以给运行速度带来很大]]></description><category></category></item><item><title><![CDATA[TinyFlashDB：一种超轻量的可纠错的通用单片机flash存储方案]]></title><link>https://blog.csdn.net/mx1117/article/details/123498199</link><guid>https://blog.csdn.net/mx1117/article/details/123498199</guid><author>mx1117</author><pubDate>Tue, 15 Mar 2022 11:28:35 +0800</pubDate><description><![CDATA[TFDB
Tiny Flash Database for MCU.
下载链接：https://github.com/smartmx/TFDB
TinyFlashDB设计前言
在单片机日常开发中，总会需要存储一些信息，这时就需要使用单片机FLASH存储的方案，目前单片机存储的方案有很多，比如：EASYFLASH、FLASHDB、OSAL_NV等等方案，他们程序都非常大，在存储不多的变量时不值得。而且现有方案的代码中很少有考虑到flash写入出错的情况。
在实际产品中，嵌入式产品flash写入可能会受各种因素影]]></description><category></category></item><item><title><![CDATA[单片机按键开发库-支持连击、长按等操作]]></title><link>https://blog.csdn.net/mx1117/article/details/123169202</link><guid>https://blog.csdn.net/mx1117/article/details/123169202</guid><author>mx1117</author><pubDate>Sun, 27 Feb 2022 19:56:37 +0800</pubDate><description><![CDATA[Multi-Function Button Dectection
单片机开发中，按键是经常需要处理的模块。一个合理的按键开发库可以大大减少开发工作量。
Multi-Function Button Dectection，简称MFBD，是一个基于嵌入式C语言的按键库，自动消抖，支持单击、长按单次触发、长按连续触发、双击、多击（三击、四击等等，最大256击）按键操作，可以运行于裸机和各类RTOS。
下载链接：https://github.com/smartmx/MFBD
MFBD设计理念
MFBD尽可能的减少了R]]></description><category></category></item><item><title><![CDATA[小小调度器的优化版本：tiny macro os]]></title><link>https://blog.csdn.net/mx1117/article/details/123053454</link><guid>https://blog.csdn.net/mx1117/article/details/123053454</guid><author>mx1117</author><pubDate>Mon, 21 Feb 2022 18:55:28 +0800</pubDate><description><![CDATA[基于小小调度器的优化版本，更适合32位单片机使用。]]></description><category></category></item><item><title><![CDATA[伪RTOS-ProroThread在CH573芯片上的移植]]></title><link>https://blog.csdn.net/mx1117/article/details/122312008</link><guid>https://blog.csdn.net/mx1117/article/details/122312008</guid><author>mx1117</author><pubDate>Thu, 06 Jan 2022 12:25:51 +0800</pubDate><description><![CDATA[沁恒的CH573芯片是一个非常便宜好用的蓝牙芯片，采用了RISC内核，主频可达60M，资源是18KB RAM + 448KB FLASH + 32KB DataFlash。

在我们使用了芯片的蓝牙库后，会占用很多的ram，快速代码占用4k多，蓝牙协议栈还需要占用5k左右，还需要预留堆栈左右给芯片使用，留给客户的可用ram空间只剩下了8k不到，所以在给ch573移植操作系统时经常会遇到内存不够用的尴尬处境。

对于这类情况，一般都是使用蓝牙库自带的TMOS进行任务的调度处理。但是TMOS有一个无法避免的缺陷]]></description><category></category></item><item><title><![CDATA[沁恒MCU从EVT中提取文件建立MounRiver独立工程]]></title><link>https://blog.csdn.net/mx1117/article/details/122209600</link><guid>https://blog.csdn.net/mx1117/article/details/122209600</guid><author>mx1117</author><pubDate>Wed, 29 Dec 2021 10:49:52 +0800</pubDate><description><![CDATA[沁恒的MCU开发包简称EVT，是沁恒官方给出的芯片使用参考例程。

EVT开发包为了减少体积，将很多工程的文件复用。
当修改一个公用文件（像link.ld，StdPeriphDriver文件夹中的库文件）时，就会导致其他的工程无法使用。

然而复制整个EVT然后删除其他无用工程的做法，让每次打开工程都需要层层打开文件夹，比较麻烦。所以本文将讲解如何从EVT中提取文件，建立独立的工程。

沁恒系列ARM内核的基本通过KEIL打开，KEIL网上教程众多，所以这里将只讲解在MounRiver下如何根据自己的习惯.]]></description><category></category></item></channel></rss>