Newtank

个人站

欢迎来到我的个人站~


嵌入式软件和传统软件对比

目录

嵌入式软件和桌面软件的对比

  • 内存:有限,影响编程语言的选择以及开发工具的使用(例如编译器优化)
  • CPU处理能力:出于成本和功耗考虑,不得不选择保守的设计方案,CPU只是恰好满足要求
  • 操作系统:OS(Windows、Linux)、RTOS、专有OS或裸机
  • 实时行为
    • 实时系统需要保证确定性
    • 实时性的要求对OS的选择和程序设计都有影响
  • 开发流程
    • 嵌入式系统没有足够的资源进行软件开发。交叉开发对于工具的选择有很大影响
    • 执行程序非常复杂,需要把代码移植到目标机或者在某种环境上运行
  • 执行流程:多数嵌入式设备从开机开始就会运行某个程序,该程序会一直运行到系统关机。这个程序可能存储在ROM,也可能从非易失存储器转移到RAM执行。
  • 每一个嵌入式设备都是不同的
  • 嵌入式软件工具和组件
  • 开发工具:
    • 交叉编译器
    • 有时嵌入式应用直接包含汇编代码
    • 嵌入式系统的内存映射是否复杂,对精确性要求很严格,对链接器有很高要求
    • 嵌入式测试器是一系列对应不同运行环境的工具
    • 其他一些更有针对性的工具,例如性能分析等
  • 软件组件
    • 适合嵌入式环境的库:可以重入、可以存在ROM中
    • 其他可用的库,如STL,在使用时需特别小心
    • OS内部设备驱动提供的硬件交互接口
    • ES的互联性提高需要的网络支持:TCP/IP或总线CAN\I2C,其他网络技术SNMP、Zigbee、Bluetooth、WiFi和USB等
    • 有组织的数据存储需求,要能应对电源故障和多线程
    • LCD的广泛引入提出了对复杂图像和用户界面软件的要求