ARM
文章平均质量分 85
宁静以致墨
慢下来,享受技术,找一个安静的位置
展开
-
非对称双核MCU基础知识及核间通信
本文从对比两颗分立MCU与单芯片双核MCU开始(以LPC4350为例),展开介绍了非对称双核MCU的基础知识与重要特点。接下来,重点介绍了核间通信的概念与几种实现方式,尤其是基于消息池的控制/状态通信。然后,对内核互斥、初始化流程等一些重要的细节展开了论述。最后提出了双核任务分工的两种应用模型,并分别举例。 背景与基本概念在开发MCU应用系统时,如果单颗MCU无法满足系统的要求,一个很普遍的做法就是使用两颗或更多的MCU,把一部分“杂项工作”分配给另一个有“助理”性质的低端MCU来完成。但是.转载 2021-03-10 16:56:37 · 1506 阅读 · 0 评论 -
代码段和数据端
上面提到的 Program Size 包含以下几个部分:1)Code:代码段,存放程序的代码部分;2)RO-data:只读数据段,存放程序中定义的常量;3)RW-data:读写数据段,存放初始化为非 0 值的全局变量;4)ZI-data:0 数据段,存放未初始化的全局变量及初始化为 0 的变量;...原创 2020-06-17 18:16:32 · 328 阅读 · 0 评论 -
ARM内核的数据存储
ARM映像文件的组成:一个映像文件由一个或多个域(region,也有译为“区”)组成每个域包含一个或多个输出段(section,也有译为“节”)每个输出段包含一个或多个输入段各个输入段包含了目标文件中的代码和数据输入段中包含了四类内容:代码、已经初始化的数据、未经过初始化的存储区域、内容初始化为零的存储区域。每个输入段有相应的属性:只读的(RO)、可读写的(RW)以及初始化成零的...原创 2020-01-21 11:28:55 · 911 阅读 · 0 评论 -
使用keil设置软复位变量不丢失的数据的区域
1、勾选如上区域,修改分散加载文件。2、编译生成,project.sct 分散加载文件,生成文件如下:生成最新的区域。3、设置变量unsigned char test_backup[8] __attribute__((section("NO_INIT"),zero_init)); test_backup[0] = test_backup[0] + 1...原创 2020-01-21 10:54:54 · 748 阅读 · 0 评论 -
Cortex-M系列的优劣对比
我们来讨论Cortex-M系列,特别设计针对竞争已经非常激烈的MCU市场。Cortex-M系列基于ARMv7-M架构(用于Cortex-M3和Cortex-M4)构建,而较低的Cortex-M0+基于ARMv6-M架构构建。首款Cortex-M处理器于2004年发布,当一些主流MCU供应商选择这款内核,并开始生产MCU器件后,Cortex-M处理器迅速受到市场青睐。可以肯定的说,Cortex-M之转载 2015-03-16 17:07:39 · 5095 阅读 · 0 评论 -
出现u8和uint8之间不匹配的解决办法
struct SI4438_Frame{ uint8 head; //5月4号修改uint8变为u8 uint8 dev_id[4];//适配器ID uint8 my_id[2]; //子设备ID uint8 handle; //报文上一跳 uint8 ctrl; uint8 data; //上电后广播的是自己的设备可原创 2015-05-04 22:04:41 · 4044 阅读 · 1 评论