96SEO 2026-02-19 11:48 14
见《【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法》

Tips除了上图中的ROM和RAM另外的外设寄存器从广义的角度讲也是Memory的一部分。
存储器映射表描述了存储器中各个组成部分的地址用于读写寻址如下图所示
RAM总计4KB是两个具有专用功能的RAM模块与CPU紧密耦合只有CPU可以访问软件开发人员一般不用关注。
RAMCPU、CLA和BGCRC可访问可以用作软件的堆栈等通用功能需要软件开发人员关注。
RAM除了CPU、CLA和BGCRC可访问另外HIC和DMA也都具有对这些存储器的完全读写访问权限比LSx
Tips另外的几种消息RAM是特定模块的专用RAM在对应功能启用时用于共享数据。
Rom总计64KB里边中存放着芯片厂家制定的一些代码芯片每次复位后都要先执行这里的代码然后才开始执行软件开发人员编译的代码。
Boot
ROM中代码的功能是芯片层面的初始化不是main函数中的初始化去执行一些类似于clear
RAM这样的任务软件开发人员只需要知道这部分的存在即可一般不需要特别关注。
Rom总计48KB是一些具有更高权限的存储区域CPU和外设通过常规的方式无法对其读写需要使用特殊的API和Password才能访问。
Secure
ROM中是芯片厂家为用户提供的特定功能function如果没有启用这些功能一般也不需要关注。
0-2总计3*128KB。
其中每个组Bank又由16个扇区Selector组成总计16*8KB。
每个扇区Selector又由64个页Page组成总计64*128Byte。
是通用型存储空间可以存放软件开发人员的Code和Bytes。
在程序运行时CPU可以直接在上面寻址并抓取指令和Bytes。
外设Peripheral寄存器是DSP各个外设子系统例如ADC的存储单元其特点时固定地址存储固定数据。
DSP的外设子系统非常多功能各不相同。
每个外设也都有很多寄存器主要用于Configure外设的模式和反馈外设的Status/Result。
外设ADCAnalog
Tips外设寄存器的用法与各个外设的功能高度相关后面用到哪个外设时再针对性研究。
Stack栈包含临时创建的局部变量、函数调用入口的参数、函数返回值、const修饰的局部常量。
Heap堆用于存放程序运行中被软件开发人员动态分布的内存段可增可减一般用malloc等函数实现动态分布内存。
用malloc函数分布的内存必须用free进行内存释放否则会造成Memory溢出。
Global/Static这两种变量都具有穿越代码运行周期的能力只是作用范围不同所以需要在Memory中分配固定的地址。
initialized的全局变量和Static修饰的变量它是直接在RAM中分配一个固定地址。
CodeInstruction字面指软件开发人员写的代码但是在Memory中已经是编译后的东西它被划分为指令和数据两部分上图中的Code准确讲应该叫指令Instruction。
Ro-data字面指只能读取的数据即程序中定义的常量例如#define
宏定义、用const修饰过变量等。
这些常量是一直在ROM中的芯片运行起来后CPU直接从ROM中读取。
Rw-data字面指可读可写的数据它实际上包括了堆、栈和全局变量等。
这些数据又分为已被初始化赋值的和未被初始化赋值的。
但是在Memory分配图中为了便于描述把Rw-data理解为已被初始化的即可。
ROM中的Rw-data从烧录文件中而来在Memory中是固定地址和固定Value的。
芯片启动时会被移到RAM中使用芯片运行起来之后Rw-data就是动态变化的了堆栈的地址和Value都会实时变化Global/Static只有Value会变化。
//Val1是Global变量并且已经初始化了在RAM的Rw-data区域有一个固定地址。
但是为了芯片下电时不丢失所以在ROM的Rw-data区域中也有一个地址来存放。
Val1在ROM中的Value一直都是1但是在RAM中的Value会随着代码的运行而变化。
Val2也是已初始化的Static变量跟Val1的Memory分配是一样的Rw-data区域。
这里的static修饰代表它的作用范围有限。
//Val3也是Global变量但是未初始化所以分配在RAM中Zi-data区域的一个固定地址。
//Val4被const修饰了是一个常量分配在ROM的Ro-data区域。
uint16
//Var5是局部变量只在DemoFcn()函数调用时临时使用所以分配在RAM
Stack区域的一个随机地址DemoFcn()函数退出时就会把这个Memory释放掉。
因为Var5有一个初始值所以在ROM栈区也会分配一个空间。
static
Var6被static修饰代表它的Value要穿越芯片运行周期即下一次读取Var6时它前一次写入的值仍能被读到所以它被非标配在RAM中Rw-data区域的固定地址上。
const
Var7被const修饰所以是常量但是它只在DemoFcn()函数中短暂使用所以是局部常量被分配在RAM中Rw-data的Stack区域。
void
8的Memoryp是这片Memory区域的起始地址它是分配在RAM
}Tips除了上述的Data还有内部的赋值、加法等运算会被编译常指令Instruction然后分配在ROM的Code区域。
以上就是本人在研发中使用嵌入式处理器的Memory时一些个人理解和分析的总结主要介绍了TI
Memory的工作原理展示了具体的使用方法并对比分析了它的特点和适用场景。
后续还会分享另外几个最近解锁的嵌入式处理器新技能欢迎评论区留言、点赞、收藏和关注这些鼓励和支持都将成文本人持续分享的动力。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback