一、什么是XIP
XIP(eXecute In Place)技术是一种在嵌入式系统中执行代码的方法,它允许代码直接在存储器中执行,而无需将代码复制到RAM中。它通常用于嵌入式系统中,如微控制器、嵌入式Linux系统等。
二、实现XIP有哪些优势
1. 节省内存空间:由于代码直接在存储器中执行,不需要将代码复制到RAM中,因此可以节省宝贵的内存空间。这对于资源受限的嵌入式系统尤为重要。
2. 提高性能:XIP技术可以减少代码加载和执行的时间,从而提高系统的性能。因为代码直接在存储器中执行,无需复制到RAM中,减少了数据传输的时间和功耗。
3. 简化系统设计:XIP技术可以简化系统设计,减少对RAM的需求。这意味着可以使用更小容量的RAM芯片,降低系统成本。
4. 提高系统可靠性:由于XIP技术避免了代码复制的过程,减少了因为复制错误导致的系统崩溃的风险。此外,存储器中的代码通常是只读的,不容易被病毒或恶意软件修改,提高了系统的安全性和可靠性。
三、匠芯创ArtInChip芯片平台如何实现XIP(详细内容请参考开发手册)
拿ArtInChip D13x系列举例,先下载SDK,配置好开发环境。
1. 一键配置编译,Luban-Lite 关于 Bootloader 和 RTOS 两部分固件的编译配置
2. XIP相关配置
* Bootloader 阶段需要使能 XIP 启动指令,并配置 NOR Flash 的 XIP 相关命令。
* RTOS 是在 NOR Flash 上运行的代码,其中包括 `<span class="pre">.text</span>` , `<span class="pre">.data</span>` , `<span class="pre">.bss</span>` , `<span class="pre">.rodata</span>` Section 需要在链接脚本中指定配置, 由于 XIP 模式下的 NOR Flash 是只读操作,因此 `<span class="pre">.data</span>` Section 需要在编译制作 os.img 时,需要分段打包, 相关的编译打包脚本也需要做调整, 在 Luban-Lite 中,用户可通过 Menuconfig 来配置相关信息。
3. 非XIP与XIP对比数据
| 测试项目 | 非XIP 模式 | XIP 模式 |
| --------------- | -------------- | ------------- |
| 启动速度(sec) | 0.433 | 0.481 |
| 显示帧率(FPS) | 29-46 (37) | 27-39(29)|
| CPU占用率(%) | 15-37 | 18-40 |
4. 常见问题
问题:Winbond 颗粒,配置 XIP 模式后,马上通过 XIP 访问 Flash ,出现 32Bytes 数据是 0xcc
解决方法:需要加入延时,大概100ms.(Workaround,但不影响其他启动模式,问题只在 XIP 启动模式下存在)
5. 功能特性:
* 支持 XIP 执行程序
* 支持 XIP 数据访问
6. 原理框图
总结:ArtInChip RTOS平台XIP技术通过在存储器中执行代码,节省内存空间,提高性能,简化系统设计,提高系统可靠性等方面具有优势,特别适用于资源受限的嵌入式系统平台,譬如D13x系列和D12x系列微控制器MCU。
离线
nor只读,文件系统还得挂个nor?
Nor不是只读
离线
tomyqg 说:nor只读,文件系统还得挂个nor?
这应该是在问,同一块NorFlash是否可以XIP一个分区的同时另一个分区挂文件系统?
可以的
离线
最重要的加密怎么搞
参见https://mp.weixin.qq.com/s/-AYcYpnjQIRtlXt0fLx1tQ
离线
ArtInChip 说:jiaowoxiaolu 说:最重要的加密怎么搞
参见https://mp.weixin.qq.com/s/-AYcYpnjQIRtlXt0fLx1tQ
请问13系列也支持加密嘛
支持。
离线