SoC嵌入式软件架构设计之四:内存空间规划分配

本文详细介绍了基于冯诺依曼结构的SoC嵌入式软件内存空间规划分配,涵盖系统软件层次、程序段组成、内存分页设计以及内存分配原则,旨在优化内存利用率和提高系统效率。
摘要由CSDN通过智能技术生成

    本文继续阐述基于低端控制器CPU的SoC固件架构设计。第一节 SoC嵌入式软件架构设计之一:系统内存需求评估 讲述了系统内存需求的评估。这一节讲述内存空间的具体规划分配。CPU有两种体系结构:哈佛结构和冯诺依曼结构。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,如80251,代码空间与数据空间完全分开,独立编址;冯诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构,如MIPS,ARM等,其代码和数据空间是统一编址。这里就以冯诺依曼体系结构为例。 

     一、嵌入式系统软件分层

     系统软件层次包括:启动、驱动、操作系统、文件系统、libc、中间件、应用框架、应用等层次。

     1)驱动、文件系统和操作系统的时间管理、中断管理等接口一般都是通过API来进行调用;

     2)libc和中间件、应用框架在系统中的处理可能以API的形式进行调用,也可以直接作为静态库与应用直接进行链接。

     3)libc和中间件、应用框架作为静态库时,会减少API的占用空间(API往往是常驻空间,没理由调用API时还要从外存储中将API的代码加载到内存,这样效率太低),省去API层也可以提高调用速度,但会增加库函数的代码空间。如果库函数链接时可以运行在Bank内存中,由于Bank内存可以复用,增加的代码空间可以忽略,从这一点来看其又是一个优点。如判断某个文件是哪种解码格式时,其可以作为中间件来实现,并链接到应用的Bank空间,因为这是音乐解码前的预处理,可以和解码时刻的控制流复用同一块Bank空间。

     4)libc和中间件、应用框架以API形式来调用时,会产生API的常驻内存空间需求,在内存中也只存在一份真正的代码,供所有模块共同调用,而且应用开发者无需关心接口实现,也不允许开发者去修改。

     各个模块应根据实际情况来决定其供上层调用的形式。

     代码分页(块,Bank)设计请参考

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值