周立功NXP LPC21xx22xx ARM启动与分散加载解析
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
"周立功NXP_LPC21xx22xx系列ARM微控制器的启动代码和分散加载程序的解析文档,主要讨论了如何利用ADS的分散加载机制来优化程序在不同存储区域的分布,以提升系统性能。" 本文档深入探讨了NXP LPC21xx和22xx系列ARM微控制器的启动过程,特别是启动代码和分散加载程序的设计与应用。分散加载技术是嵌入式系统中的一种关键方法,它允许程序员将程序的不同部分定位在系统内存的不同区域,以优化执行效率。 LPC2200启动模板中的`scf`文件(如`mem_a.scf`, `mem_b.scf`, `mem_c.scf`)是ADS(Arm Development Studio)的分散加载配置文件,用于定义代码和数据在内存中的布局。这些文件指导链接器将不同部分的代码和数据加载到指定地址,确保程序按照预期工作。 分散装载的主要目标包括: 1. **中断服务程序**:由于32位RAM执行速度快,通常将中断服务程序放置于此,以实现快速响应。 2. **启动代码与主程序**:为了提高效率,通常将启动代码(Bootloader)之外的代码复制到RAM中运行,因为RAM执行比ROM更快。 分散装载的两个核心任务是“如何分散”和“如何装载”。前者涉及如何组织输入段成输出段和域,后者则涉及到确定各段在存储空间中的装载和运行地址。域可以分为装载域和运行域,装载域定义了程序在被加载到存储器前的状态,而运行域则表示程序运行时的内存布局。对于某些如RW类型的段,它们在装载和运行时可能位于不同的地址空间。 Scatterfile是实现分散加载的关键工具,它允许为每个代码或数据区指定装载和执行时的存储器位置。Scatterfile中的存储区块分为装载区和执行区,分别对应程序加载时和运行时的位置。每个代码和数据段都有装载地址和运行地址,它们可以相同,也可以根据需求设置为不同地址。 Scatterfile的语法简单,由一系列指令组成,定义了内存区域、大小、类型以及对应的装载和运行地址。通过这种方式,开发者能够精细控制程序在内存中的分布,从而优化系统性能和响应速度。 在实际开发中,理解并熟练运用分散加载技术对NXP LPC21xx22xx系列ARM微控制器的程序设计至关重要,它不仅可以提升系统运行效率,还能帮助开发者更好地管理有限的系统资源。通过合理配置分散加载文件,可以实现更加灵活且高效的代码布局,这对于嵌入式系统的性能优化具有重要意义。
![](https://csdnimg.cn/release/download_crawler_static/6777185/bg7.jpg)
![](https://csdnimg.cn/release/download_crawler_static/6777185/bg8.jpg)
剩余35页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)