上一节讲述了在没有MMU的CPU(如80251、MIPS M控制器系列、ARM cortex m系列)上实现虚拟内存管理的集成硬件设计方法。新设计的内存管理管理单元要实现虚拟内存管理还须要操作系统、代码分块(Bank)的支持。详见SoC嵌入式软件架构设计之二:没有MMU的CPU实现虚拟内存管理的设计 ...
分类:
其他好文 时间:
2017-08-01 14:45:50
阅读次数:
266
本文继续阐述基于低端控制器CPU的SoC固件架构设计。第一节 SoC嵌入式软件架构设计之一:系统内存需求评估 讲述了系统内存需求的评估。这一节讲述内存空间的具体规划分配。CPU有两种体系结构:哈佛结构和冯诺依曼结构。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,如80251,代码空间与数据 ...
分类:
其他好文 时间:
2017-04-13 21:59:18
阅读次数:
244
低端控制器对执行效率要求很高,成本敏感,因而SoC内置SRAM是紧缺资源。代码分块管理就是为了充分利用内存,提高内存的复用效率而提出的一种设计方法。代码分块管理不仅涉及到硬件,同样对操作系统和应用、驱动的设计都有要求,这些模块共同努力以使执行效率达到最高。 本节讲述代码分块(Bank)管理思想下可执 ...
分类:
其他好文 时间:
2017-04-13 21:58:59
阅读次数:
188
嵌入式固件的系统区(system disk,SD)包括操作系统、驱动、中间件、应用和字库、UI资源等文件,本文讲述SD区的文件系统设计。文件系统最主要的目标是为了实现单个文件的定位和读写。因为一般代码都是不可自修改的,即量产之后不会有写操作,嵌入式系统的SD文件系统就是为了能够简单、高效地定位某个文 ...
分类:
其他好文 时间:
2017-04-13 21:58:21
阅读次数:
260
大多数的程序代码是必要的时,它可以被加载到内存中运行。手术后,可直接丢弃或覆盖其他代码。我们PC然在同一时间大量的应用,能够整个线性地址空间(除了部分留给操作系统或者预留它用),能够觉得每一个应用程序都独占了整个虚拟地址空间(字长是32的CPU是4G的虚拟地址空间),但我们的物理内存仅仅是1G...
分类:
其他好文 时间:
2015-09-11 10:38:18
阅读次数:
241
前面一篇博文《嵌入式软件架构设计之分层设计》給大家分享了程序分层设计的一些个人观点。里面有提到接口统一规范的问题,下面这篇博文详细阐述一下关于代码可移植性的问题。代码可移植性非常重要!在这里有的人很纳闷,有人会问:除了汇编语言的移植性很差以外,c语言,c++,j..
分类:
其他好文 时间:
2015-02-26 18:42:13
阅读次数:
214
在实际的项目开发中,项目往往是并行开发的,也就是说硬件设计,底层软件设计,应用软件设计是同步进行的。比如说在开发板上调试模块驱动,在其他平台上调试应用再移植到目前这个平台等。这里又涉及到如何提高嵌入式应用软件的可移植性的问题,这个问题在下一篇博文中专门讲解..
分类:
其他好文 时间:
2015-02-14 01:12:41
阅读次数:
886
嵌入式固件的系统区(system disk,SD)包括操作系统、驱动、中间件、应用和字库、UI资源等文件,本文讲述SD区的文件系统设计。文件系统最主要的目标是为了实现单个文件的定位和读写。因为一般代码都是不可自修改的,即量产之后不会有写操作,所以嵌入式系统的SD文件系统就是为了能够简单、高效地定位某...
分类:
其他好文 时间:
2014-10-13 18:23:26
阅读次数:
138
在嵌入式系统中,驱动都是以API的方式提供给应用进行调用。这里介绍嵌入式系统的API设计和管理实现方法。
本节讲述内存紧缺型嵌入式系统中基于代码分块(Bank)管理思想对可执行文件的重构,即对程序编译后的可执行文件进行重新组织、打包,以在加载阶段获得最高的执行效率,减少内存占用。要使执行效率高,意味着可执行文件的格式尽可能简单,解析执行文件的流程简单,相应地,解析过程代码量少,即能够减少内存的占用。
分类:
其他好文 时间:
2014-10-11 15:01:45
阅读次数:
189