建设网站需要什么技术人员,网站建设与优化推广方案,做印刷厂网站,网页html教程最近在给公司的ADAS DCU做内存分配#xff08;Memory Allocation#xff09;#xff0c;在这儿记录一下相关知识点#xff0c;也算是给中文社区做贡献了。目录#xff1a;1. ECU启动流程2. 存储空间解析3. TC397单片机的Memory Map和一些备注1. ECU启动流程图总比文字直观…最近在给公司的ADAS DCU做内存分配Memory Allocation在这儿记录一下相关知识点也算是给中文社区做贡献了。目录1. ECU启动流程2. 存储空间解析3. TC397单片机的Memory Map和一些备注1. ECU启动流程图总比文字直观如上图所示上电以后其实就三步 运行ROM的启动函数 -- 跳转到FLASH里的Startup函数 -- 跳转到我们熟悉的main函数 。 所以FLASH里的Startup函数其实才是最先执行且用户可以修改的函数。只是它一般都被封装好了所以才没有接触到。如果你想写BootLoader就在Startup函数的基础上改就ok了。2. 存储空间解析以下将对上面那张图的PFLASHDFLASH等名词进行解释重要且有用的2.1 掉电后数据不会消失的FLASH,EEPROMPFLASH Program Flash用来存程序价格便宜配的容量也大我用的这款足有16MDFLASH Data Flash用来存用户数据虽然叫Flash其实它是EEPROM成本比FLASH高我这款才1M多FLASH 和EEPROM的最大区别是FLASH按扇区section擦写用来存储程序这种大但不太频繁更改的data成本低。EEPROM则按字节Byte擦写存储用户数据这种小的零碎的总是在变的data时擦写速度快。2.2 掉电后数据会消失的RAMRAM速度快甚至会比Flash快50%以上。由于RAM空间有限单片机运行的时候程序存储在flash但数据会存储在RAM即CPU从flash中取指令从RAM中抓数据。重要但没啥用的【直接转到第三章如果你赶时间】扩展阅读a: 当然你也可以可以通过#pragma CODE_SECTION等将程序先从Flash拷到RAM里面再在RAM里面运行来提升运行速度。详见Running an Application from Internal Flash Memory 第四章“Copying Sections from Flash to RAM” [1]b: 冯诺依曼哈佛结构 [2]2.3 链接文件Linker File总的来说linker file用来定义数据和代码具体存放在哪一块。比如它会规定存储在Flash的启动函数_START()的存储地址和BootROM里面reset vector内预设的地址匹配这样复位以后就总会从启动函数_START()开始执行即reg.h 里面将寄存器的地址重命名所以向寄存器写其实就等于向该地址赋值而link file里面则是将函数和变量存在哪个地址做了规定具体定义见下图这张图进一步解释了linker file在存储中的作用[3] :3. TC397单片机的Memory Map和一些备注先来一张从用户手册里拿来的单片机Memory Map可以看到1. 对这款6核ECUcore0到5都有自己的专属FLASH大小为3Mcore5是1M读取它有专属的接口FPIn,速度快 2. 每个core内部都有16k的program cache和16k的data cache。 PSPR和DSPR稍大看起来是2级缓存3. 这6个core没有太大的区别唯一就是core0和core1的DSPRdata scrachpad RAM大一些。240KB其他的core是96KB4. 可以用的RAM还有LMUDAM和4M的EMEM。但根据datasheetDAM不支持ASIL B及以上的软件【becasue of hardware safety mechanism】5. 对于第一条里提到的FLASH对于同一块物理存储空间。它们可以在地址0x8000,0000通过总线进行cache access也可以在地址0xA000,0000通过总线进行non-cache access, 这是比较有意思的6. 因为是TC397 -ADAS所以有额外的EMESSPURIFCIF以及扩展的HSMReference1. http://www.ti.com/lit/an/spra958l/spra958l.pdf2. https://blog.csdn.net/jj163zhuangzi/article/details/47088843 3. http://downloads.ti.com/docs/esd/SLAU131U/introduction-to-sections-stdz0691509.html 4. http://m.elecfans.com/article/582174.html