摘要: 轮询系统即在裸机编程时,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序地处理各种事件。 轮询系统是一种非常简单的软件结构,通常只适用于仅需要顺序执行代码且不需要外部事件来驱动就能完成的事件。 当有外部事件驱动时,实时性就会降低。 伪代码: int main() { hardware 阅读全文
posted @ 2022-03-04 08:26 Ben002 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 学习一个RTOS,弄清楚它的编程风格很重要,这可以大大提高我们阅读代码的效率(虽然我不太喜欢这种风格)。 1、数据类型 FreeRTOS针对不同的处理器,对标准C的数据类型进行了重定义。在类型前一般加上port ,这里的port表示接口,在移植FreeRTOS到处理器上时,需要将这些接口文件把它们连 阅读全文
posted @ 2022-03-02 09:17 Ben002 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 在编程时,如果用户没有明确指定char的符号类型,那么编译器会默认指定指定char的类型为无符号或者有符号。在KEIL中,默认char是无符号的,但是也可以配置为有符号的 阅读全文
posted @ 2022-03-02 08:33 Ben002 阅读(80) 评论(0) 推荐(0) 编辑
摘要: lsmod :查看模块列表 insmod:安装模块 用法: inmod xxx.ko modinfo: 查看模块信息 用法:modinfo xxx.ko rmmod:卸载模块 用法:rmmod xxx (注:卸载时只需要输入模块名即可,不能加.ko后缀) 阅读全文
posted @ 2022-02-23 09:07 Ben002 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 驱动 广义:这一段代码操作了硬件驱动,所以这一段代码就叫硬件的驱动程序。(本质上是电力提供了动力,而驱动程序提供了操作逻辑方法)狭义:驱动程序就是专指操作系统中用来操控硬件的逻辑方法部分代码。 微内核和宏内核(1)宏内核(又称单内核):将内核从整体上作为一个大过程实现,并同时运行在一个单独的地址空间 阅读全文
posted @ 2022-02-22 09:07 Ben002 阅读(122) 评论(0) 推荐(0) 编辑
摘要: Cortex-M3和Cortex-M4基本上只有FPU的区别,其实M4还多了一些DSP扩展指令。Cortex-M7性能爆表,DMIPS跑分已经超过了Cortex-A8。 虽然它们之间存在这么多差异,但是向上兼容性却做的很好。Cortex-M0向上兼容M3,M3向上兼容M4,M4向上兼容M7。这种兼容 阅读全文
posted @ 2022-02-17 08:34 Ben002 阅读(3609) 评论(0) 推荐(0) 编辑
摘要: USART:通用同步和异步收发器UART:通用异步收发器当进行异步通信时,这两者是没有区别的。区别在于USART比UART多了同步通信功能。这个同步通信功能可以把USART当做SPI来用,比如用USART来驱动SPI设备。 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 阅读全文
posted @ 2022-02-17 08:07 Ben002 阅读(784) 评论(0) 推荐(0) 编辑
摘要: 预测值有高斯噪声,测量值也有高斯噪声,这2个噪声相互独立,单独的利用任何一个都不能很好的得到真实值,所以在2者之间有个信赖度的问题,应该相信谁更多些,这也就是卡尔曼算法的核心,这个信赖度就是卡尔曼增益,卡尔曼增益通过测量值和真实值之间的协方差最小时确定的,由此求这个协方差偏导为0时的系数,这个系数就 阅读全文
posted @ 2022-02-16 22:51 Ben002 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/utank/p/11264175.html 【双堆栈指针(MSP&PSP)】 Cortex-M3内核中有两个堆栈指针(MSP & PSP),但任何时刻只能使用到其中一个。 复位后处于线程模式特权级,默认使用MSP。 通过SP访问到的是正在使用的那 阅读全文
posted @ 2022-02-16 21:50 Ben002 阅读(714) 评论(0) 推荐(0) 编辑
摘要: VSCODE编译环境搭建重要参考: https://docs.wireless-tech.cn/doc/6/ 记录下自己的错误: 1、末配置时报错: 2、要注意的地方: 3、配置的地方: 4、成功的编译HELLO WORLD: 阅读全文
posted @ 2022-01-26 17:54 Ben002 阅读(137) 评论(0) 推荐(0) 编辑