- 博客(17)
- 收藏
- 关注
原创 嵌入式全局数据中断访问问题
通过试验可以发现,之前的担忧是完全有理由的,高优先的中断会打断正在执行的任务,二者同时发生数据修改时,就有可能会发生数据覆盖和数据丢失的情况,在实际的项目中,我们要极力避免在不同中断和主任务中去修改全局变量。要是确实无法避免,可以考虑使用临界区来使得修改有序进行,或者使用系统调用来实现,在Cortex内核中系统的调用的优先级是高于0的,这就使得系统调用的效果和临界区相同,都可以保证数据有序修改。
2024-02-18 19:19:42 1119 1
原创 在Vscode中使用Cmake C/C++混合编程开发STM32
在硬件快速发展的今天,使用更方便的开发语言和开发工具,可以加快我们对嵌入式软件的开发和部署,相信在使用C/C++混合编程后,项目团队的能力也可以进一步释放.
2023-12-17 18:27:55 574 1
原创 C语言扩展属性section——数据段分析
综上,使用_attribute_((section(“”)))这个扩展属性对于需要由注册机制的需求非常友好,比如linux内核初始化,和单元测试用例的执行,在嵌入式中由于链接脚本的问题对于数据拷贝会由遗漏的情况,所以需要在启动文件上做出相应的调整。
2023-11-08 23:51:55 806
原创 STM32 boot和app之间的数据传递
总之,在stm32中有通过备份SRAM(备份寄存器)的方式来进行存储数据,也可以在编译链接过程中划分出一块不会占用的空间来进行存储数据,这和备份SRAM是效果一样,只要板子不掉电,ram中的数据就不会丢失,当然备份SRAM可以由VBAT进行供电,哪怕板子掉电,备份域中的数据也不会丢失,这是SRAM比不了了,当然也由于这个性质,备份SRAM的较为珍贵,如果备份SRAM不够使用,F1系列的备份寄存器只有84Byte,可以在SRAM中划分空间存储,不过从移植的角度来看,还是使用备份SRAM更为便捷。
2023-11-07 21:26:24 725
原创 Git rebase使用
在git book中提到Git 并不会尝试过于聪明的合并冲突解决方案,Git 的哲学是聪明地决定无歧义的合并方案所以,git中的冲突非常普遍,而git中有一些非常不错的工具来帮助我们进行版本管理,git rebase就是一个非常强大的工具,不仅可以进行变基,去除多余的合并分支,实现简化合并流程的效果,也能够变动历史提交记录,让我对历史上的某笔提交进行修正或者删除。
2023-11-06 19:34:10 288
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人