- 博客(22)
- 资源 (5)
- 收藏
- 关注
原创 MCU 代码和数据的存储加载规则说明
本文介绍了嵌入式系统中变量和代码的存储分类与内存布局:const常量、字符串字面量及.rodata段属RO类,存于Flash;已初始化全局/静态变量(.data)需从Flash加载至RAM;未初始化变量(.bss)在RAM中自动清零;局部变量在栈上临时分配;代码段(.text)默认位于Flash,可通过scatter脚本加载至RAM。
2026-09-17 15:27:39
134
原创 JSON介绍
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用纯文本存储结构化数据。它支持对象(无序键值对集合,用{}表示)和数组(有序值集合,用[]表示)两种数据结构。值可以是字符串(双引号包裹)、数字、布尔值(true/false)、null、对象或数组。JSON语法严格:键名必须双引号包裹,数据项用逗号分隔(末尾不能有逗号),不支持注释,允许空白字符但会被解析器忽略。采用UTF-8编码,兼容Unicode字符,兼具人机可读性。
2026-06-10 16:20:24
195
原创 MQTT服务器搭建(windows环境)
本文介绍了在Windows系统下安装配置开源MQTT服务器Eclipse Mosquitto的步骤:下载最新版安装包(mosquitto-2.1.2),通过命令行工具创建管理员账户密码文件,并修改配置文件(mosquitto.conf)设置监听端口1883、禁用匿名访问及指定密码文件路径,实现仅限本机访问的安全MQTT服务部署。
2026-06-09 10:57:09
301
原创 RT1061 CAN接收数据FIFO模式和消息缓冲区模式区别
摘要:NXPi.MXRT1061的FlexCAN模块提供FIFO和消息缓冲区两种接收模式。FIFO模式强制占用MB0~MB5作为6级硬件队列,ID过滤通过后续MB空间实现;消息缓冲区模式可灵活配置所有MB,每个接收邮箱拥有独立掩码寄存器。FIFO模式适合高频数据流处理,自动按序读取;消息缓冲区模式需手动指定邮箱索引,适合优先级分类或特定ID处理。ID过滤通过过滤器(定义目标特征)和掩码器(控制匹配精度)实现,支持独立掩码和全局掩码机制。(149字)
2026-06-03 11:18:38
306
原创 gb32960-2025协议 实时数据SM2验签说明
GB32960-2025实时数据SM2验签流程说明:需对242402FE...3837数据体进行验签,使用芯片ID(514F503030...343030)作为固定标识,通过SM2公钥(X/Y坐标)和64字节签名值(C778...860B)进行验证。验签工具需配置HEX格式,勾选Z值计算选项,将待验签数据体、公钥、芯片ID和签名值填入对应字段完成验证。完整操作指南可参考指定验签工具链接。
2026-03-10 15:32:37
347
原创 ucos ii 系统的OSTimeDlyHMSM() 函数详解
OSTimeDlyHMSM()是ucos ii里的一个高精度任务延迟函数,允许以时、分、秒、毫秒为单位指定延迟时间,比OSTimeDly()函数提供更加直观的时间控制。
2025-03-26 13:37:23
409
原创 ucos系统用户可使用的最低任务优先级
在 µC/OS-II 或 µC/OS-III 中,任务的优先级是一个重要的概念,优先级决定了任务的调度顺序。如果未启用了统计任务(OS_TaskStat),用户的最低优先级通常为 OS_LOWEST_PRIO - 1, 如果未启用了统计任务(OS_TaskStat),用户任务的最低优先级为 OS_LOWEST_PRIO - 2。空闲任务的优先级固定为 OS_LOWEST_PRIO。统计任务的宏OS_TASK_STAT_EN在 os_cfg.h 文件中定义,用于配置统计任务的行为定义统计任务。
2025-03-07 16:10:34
481
原创 FreeRTOS不同任务状态对功耗的影响
任务处于就绪状态时,虽然没有运行,但调度器会定期检查就绪任务,导致一定的功耗,其功耗低于运行状态,但高于阻塞或挂起状态。删除状态与挂起状态类似,但任务资源会被释放,任务在删除状态下不会运行,也不会消耗CPU资源,功耗最低。对于长时间不需要运行的任务使用挂起状态,在系统进入低功耗模式时,挂起所有非必要任务。任务在运行状态下会占用CPU资源,导致较高的功耗,是功耗最高的状态;尽量将任务逻辑拆分为小块,减少任务的运行时间,避免长时间占用CPU。任务在挂起状态下不会参与调度,完全停止运行,是功耗最低的状态之一。
2025-02-18 17:17:53
490
原创 Keil 点击右键无法跳转到函数定义的问题
如下图所示,“右键”-“Go To Definition of ...”的选项变成了黑色,可以点击并实现跳转。打开“Options for Target”对话框(通过点击工具栏上的魔术棒图标)。主要原因时因为Keil工程未生成浏览信息,Keil需要浏览信息来定位函数定义。在“Output”选项卡中,勾选“Browse Information”。重新编译项目以生成浏览信息。
2025-02-18 16:53:41
2987
4
原创 __DSB()和__ISB() 学习笔记
先后调用执行,目的是在进入低功耗模式前,确保所有操作完成,避免未完成的内存访问或指令执行导致问题。在休眠唤醒之后,在恢复中断后,先后调用执行,确保处理器的状态是预期的,避免潜在的问题。__ISB()功能:刷新处理器流水线,确保在__ISB()之前的所有指令都执行完毕,之后的指令从内存重新读取;__DSB()功能:确保在__DSB()之前的所有内存访问指令(如:加载和存储)都完成后,才执行之后的指令;__DSB()和__ISB()是ARM架构中的内存屏障指令,用于控制指令和数据的执行顺序。
2025-02-14 16:28:40
1004
原创 关于I2C上拉电阻阻值选择
在 I2C 总线设计中,上拉电阻的阻值选择非常重要,它直接影响信号的上升时间、功耗和通信可靠性。通过计算最大上拉电阻阻值,并参考典型值,可以选择合适的上拉电阻,确保 I2C 总线的信号完整性和通信可靠性。通信速度:I2C的通信速度包括标准模式100KHz、快速模式400KHz和高速模式3.4MHz,上拉电阻越小,通信速度越高。tr=0.8473✖Rp✖Cb,其中Rp是上拉电阻阻值,Cb是总线电容。总线电容:总线电容包括PCB走线电容,设备引脚电容和寄生电容。以快速模式400KHz、总线电容200pF为例,
2025-02-13 14:14:19
802
原创 mcu gpio开漏输出的理解
开漏输出的典型应用之二“电平转换”,开漏输出可以用于不通电压域之间的电平转换,例如将3.3V逻辑电平转换为1.8V逻辑电平,只需要将上拉电阻连接的1.8V电压即可;推挽输出是开漏输出以外的另一种gpio输出,推挽输出可以主动输出高电平和低电平,输出能力强,适合驱动负载,不能直接用于“线与”逻辑;开漏必须依靠外部电路的上拉电阻才能输出高电平,多个开漏输出可以连接到同一信号线上实现“线与”逻辑,当所有输出为高阻态时,信号线才会被上拉电阻拉高,否则只要有任何一个低电平,则信号线会被拉低。
2025-02-13 13:46:09
909
原创 mcu gpio驱动强度的理解
当寄存器值为0b000时,输出驱动强度时R0/2时,即驱动强度为R0的2倍,同理。R0/7即R0的7倍;(tips:驱动能力会影响功耗,在低功耗设计中,可以选择较低的驱动强度以降低功耗)当寄存器值为0b000时,输出驱动是被禁掉的,即高阻抗状态;
2025-02-11 17:57:30
689
原创 通过__NOP()实现MCU延时函数
_NOP()函数是一个“空指令”,虽然不执行操作,但占一个程序步,占用执行一个指令的CPU时间片。下面以600Mhz主频的MCU为例,实现秒级和毫秒级的延时函数。
2025-02-11 17:49:11
1024
原创 arm linux gcc 交叉编译 sqlite3 的操作笔记
到此,已经完成arm linux交叉编译sqlite3库文件,并把库文件和头文件移植到arm linux sdk中。后续使用交叉编译器重新编译SDK,就可以把sqlite3库文件和头文件编译进SDK,把编译的镜像烧录到arm主板,这样就可以在arm 主板中使用sqlite3功能。CC:arm平台所使用的交叉编译工具,此次使用的是arm-openwrt-linux-uclibcgnueabi-gcc,需要配置环境变量,否则此次必须填写绝对目录。把lib文件夹下的库文件复制到交叉编译器sdk的lib目录下面;
2024-05-23 17:04:56
921
1
原创 Windows 11安装,配置adb工具,实测adb连接EC20模块
键盘输入WIN+R,输入cmd命令,打开cmd.exe窗口,输入adb shell指令,输入用户名和密码后,可以通过adb进入usb设备;有些usb设备的vid不支持,需要进行手段添加,电脑里搜索“adb_usb.ini”文件,在.android文件内,如下图所示。此电脑->右键->高级系统设置->环境变量->系统变量->变量Path->编辑->新建,按下图添加环境变量;此电脑->右键->高级系统设置->环境变量->系统变量->新建,按下图添加系统变量;通过usb线连接PC和EC20 OPEN模块;
2024-05-22 10:47:49
4383
原创 windows下的openssl-rsa功能演示
指令如下:通过openssl生成私钥并输出保持为“rsa_pri_pkcs8_key.pem”文件,生成的私钥为PKCS#8格式;
2023-11-15 17:38:15
1051
2
原创 RT-thread 添加文件夹(模块)及文件夹内的*.c和*.h文件到mdk工程操作示例
官方建议把用户新建的源代码文件都放在applications文件夹里,但是在做项目时,代码一般比较多,这个时候我们需要新建一个或多个文件夹来分类放置代码,本文就是介绍并实操一下“RT-thread 如何添加新的文件夹(模块)到工程”,本文以“imxrt1061-forlinx-OK1061-S”工程代码为例。
2023-11-08 13:33:37
2367
1
S32K144开发板入门手册
2019-03-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅