【启明智显技术分享】关于工业级HMI芯片Model3C的TEXT RODATA,必须要映射到PSRAM吗?

一、Model3C芯片介绍

Model3C芯片性能
在这里插入图片描述

Model3C(简称M3C)是一款基于 RISC-V 的高性能、国产自主、工业级高清显示与智能控制 MCU,配备强大的 2D 图形加速处理器、PNG/JPEG 解码引擎、丰富的接口,支持工业宽温,具有高可靠性、高开放性。
在这里插入图片描述

Model3C芯片价格
Model3C(简称M3C)是一款性价比极高的工业级标准的HMI芯片,价格仅个位级;能极大地降低工业自动化和嵌入式系统的成本,从而增加产品在市场上的竞争力。

二、 Model3C的TEXT RODATA,必须要映射到PSRAM吗?

针对 Model3C的TEXT RODATA,需要映射到PSRAM,开启XIP,主要是因为 Model3C的开发 图片基本是走硬解进行内存管理,或者开启XIP。不然很容易碰到代码或者一些常量过大,导致报PSRAM不够的问题。如下图:
在这里插入图片描述因为我们在用LVGL的时候是直接生成的字体C文件,还有图片的C文件,用的是常量存储,就会导致这个报错。

三、什么是XIP

说到XIP,可能有很多开发者觉得陌生,今天小编借用“我和你拼了SS”整理的相关资料,供大家参考,原文链接:https://blog.csdn.net/qq_41904341/article/details/125278611

1.什么是XIP
​ eXecute In Place,即芯片内执行、就地执行,是指CPU直接从存储器中读取程序代码执行,而不用再读到内存中。应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。

​ flash内执行是指nor flash不需要初始化,可以直接在flash内执行代码。但往往只执行部分代码,比如初始化RAM。好处即是程序代码无需占用内存,减少内存的要求。

​ XIP是复杂性和速度的权衡,而这就意味着XIP通常仅用于Bios或RAM极度短缺的情况。

注意:片内执行不是说程序在存储器内执行!
​ Nor Flash能在芯片内执行,指的是CPU能够直接从Nor flash中取指令,供后面的译码器和执行器来使用。可以理解为:在这一时刻,Nor Flash实现了Memory的功能。

2.如何实现XIP
​为实现就地执行,必须满足几个条件:

存储器必须提供与内存相似的接口给CPU。

该接口必须提供足够快的读取操作,并具有随机访问模式。

如有文件系统,则需要提供合适的映射功能

程序链接时需要知道存储器的地址或地址与位置无关。

程序不能修改已加载映像中的数据。

​ 因为NOR Flash和EEPROM通常能满足上述要求,所以其可以XIP。

3.为什么Nor Flash可以实现XIP,Nand flash不行
注意
​ Nand只是不适合做XIP,但并不是不能做XIP。当解决下列问题时,Nand也可以实现XIP。

.嵌入式中代码的执行方式:
​ 嵌入式系统中代码的执行方式主要有3种:

(1)完全映射:嵌入式系统程序运行时,将所有代码从非易失存储器(Flash、ROM等)复制到RAM中运行。

(2)按需分页:只复制部分代码到RAM中,这种方法对RAM中的页进行导入/导出管理,如果访问位于虚拟内存中但不在物理RAM中会产生页错位,这时才将代码和数据映射到RAM中。

(3)XIP:在系统启动时,不将代码复制到RAM,而是直接在非易失性存储位置执行,RAM中只存放需要不断变化的数据部分
Nor flash和rom的读取速度为百ns级别(约100ns),比较适合XIP。而Nand flash的读取操作是基于扇区的,速度相对很慢(us级),因此不适合实现XIP。

​ 不过Nand flash的写入速度比Nor的快,更适合做存储和下载系统。

3.2.芯片的结构不同
​ NOR flash之所以可以片内执行,就是因为他符合CPU去指令译码执行的要求。CPU送一个地址出来,NORflash就能给一个数据让CPU执行,中间不需要额外的处理操作。
​ NAND flash不一样,是因为Nand flash有地址,数据,命令共用IO口的问题,Cpu把地址发出来之后,并不能直接得到数据,还需要控制线的操作才能完成。就是他没有专用的SRAM接口。

3.3 其他原因
​ 一段CODE能够正确的运行,要保证它的CODE是连续(至少是逻辑连续的)且正确的。而在读取Flash时候,容易出现位翻转(bitconvert)。NAND的出现几率要比NorFlash大得多。这个问题在Flash存储关键文件时是致命的,所以在使用NandFlash时建议同时使用EDC/ECC等校验算法。

​ 但是,如果能保证不出错,也还是可以进行XIP的。

4.系统引导时的XIP
​ 通常,Bios引导程序是一个XIP程序,它链接时会指定从flash芯片 power on后的映射地址开始运行,完成相关设置后,把后续的引导程序或操作系统内核加载进RAM。

​ 在这初始化期间,可写存储器可能不可用,所有的计算都必须在CPU寄存器中执行。因此,Bios阶段的引导程序通常以汇编编写,提供尽量少的功能。只需要为下一阶段程序的提供正常的执行环境即可。有些处理器也能通过嵌入少量SRAM或者采用CAR方式(将Cache用作RAM)来实现高级语言程序的运行。

​ 对于内核和引导程序,地址空间通常是内部分配的。为了使用XIP,需要指示链接程序,将不可修改的数据和可修改数据放在不同的地址区间,并提供将可修改数据复制到可写内存的机制,使任何程序正常访问这些数据。

5.文件系统的XIP
​ 文件系统的XIP通常难以满足。在没有页表的系统中,整个文件必须连续存储,不能碎片化,而基于闪存的文件系统为了延长生命周期,通常会将数据分配到擦除周期最小,磨损最少的扇区。

​ AXFS (高级XIP文件系统,Advanced XIP File System)是Linux系统上一种较新的文件系统,旨在克服与XIP相关的,特别是在XIP用户空间应用程序方面的某些缺点。

​ 例如,可以将可执行的二进制文件拆分为“ XIP区域”,从而避免了上面提到的碎片限制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/660013.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

d16(149-153)-勇敢开始Java,咖啡拯救人生

跳过了p151 四小时的讲题我不敢听:) Stream Stream流,是JDK8后新增的API,可以用于操作集合或者数组的数据 优势:大量结合了Lambda的语法风格,该方式更强大更简单,代码简洁,可读性好 常用方法 …

Anomalib:用于异常检测的深度学习库!

大家好,今天给大家介绍了一个用于无监督异常检测和定位的新型库:anomalib,Github链接:https://github.com/openvinotoolkit/anomalib 简介 考虑到可重复性和模块化,这个开源库提供了文献中的算法和一组工具,以通过即插即用的方法设计自定义异常检测算法。 Anomalib 包…

Python 全栈体系【四阶】(三十七)

第五章 深度学习 八、目标检测 3. 目标检测模型 3.1 R-CNN 系列 3.1.1 R-CNN 3.1.1.1 定义 R-CNN(全称 Regions with CNN features) ,是 R-CNN 系列的第一代算法,其实没有过多的使用“深度学习”思想,而是将“深度学习”和传统的“计算…

vivado Aurora 8B/10B IP核(8)- 单工 IPCORE 的初始化

单工 IPCORE 的初始化 单工 IPCORE 不依赖于 Aurora 8B/10B 通道的信号进行初始化。 相反,单工通道的 TX 和 RX 侧通过一组边带初始化信号传送其初始化状态:对齐,绑定,验证 和复位; 一个为 TX 侧设置 TX_前缀,一个为…

Golang错误处理机制

文章目录 Golang错误处理机制panic异常recover捕获异常自定义错误 Golang错误处理机制 panic异常 panic异常 Go的类型系统会在编译时捕获很多错误,但有些错误只能在运行时检查,比如除零错误、数组访问越界、空指针引用等,这些运行时错误会引…

现代机器学习(ML)技术在医疗成像领域的新应用

现代机器学习(ML)技术在医疗成像领域的新应用主要包括以下几个方面: 一、自动病变检测 使用深度学习算法,尤其是卷积神经网络(CNN),自动识别和分类医学影像中的病变,如肿瘤、炎症等。自动病变检测是现代机器学习技术在医疗成像领域应用的一个重要方向。它主要通过以下…

esp32学习

开启自动补全功能 Arduino IDE 2.0开启代码补全及修改中文_arduino ide怎么设置中文-CSDN博客 PWM 、 ADC转换 在使用这个adc默认配置的时候adc引脚的输入电压必须是介于0-1之间,如何高于1v的电压都会视为一个最高值,如果要增加测量电压你就需要配置一…

RabbitMQ-死信队列

面试题:你们是如何保证消息不丢失的? 1、什么是死信 在 RabbitMQ 中充当主角的就是消息,在不同场景下,消息会有不同地表现。 死信就是消息在特定场景下的一种表现形式,这些场景包括: 1. 消息被拒绝访问&…

有哪些好用的局域网电脑监控系统软件?

企业员工不好管理??? 局域网已成为企业日常运营不可或缺的一部分。 然而,随着网络技术的普及,员工在局域网中的不当行为也日益增多,如滥用网络资源、泄露敏感信息、消极怠工等。 为了解决这些问题&#x…

【漫画生活中的项目管理】项目经理的五一出行清单~

五一到来之际,你是否做好假期出行攻略?五一假期,是探索世界的绝佳时机,是放松身心的美好时刻。 面对各地即将要“人从众”的旅游大军,完全不用担心玩不好!今年跟着项目经理学做小长假出行旅游规划&#xf…

【蓝桥杯C++A组省三 | 一场勇敢的征途与致19岁的信】

随着4.13西大四楼考场的倒计时结束… 就这样蓝桥杯落幕了 省三的名次既满足又不甘心,但又确乎说得上是19岁途中的又一枚勋章 从去年得知,纠结是否要报名、到寒假开始战战兢兢地准备、陆续开始创作博客,记录好题和成长……感谢你们的关注&…

PHP源码_最新Ai对话系统网站源码 ChatGPT+搭建教程+前后端

基于ChatGPT开发的一个人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论…