日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

单片机断电后静态存储区里面还有数据吗_单片机启动流程和存储架构详解

發(fā)布時(shí)間:2023/12/4 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机断电后静态存储区里面还有数据吗_单片机启动流程和存储架构详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在給公司的ADAS DCU做內(nèi)存分配(Memory Allocation),在這兒記錄一下相關(guān)知識(shí)點(diǎn),也算是給中文社區(qū)做貢獻(xiàn)了。

目錄:

1. ECU啟動(dòng)流程

2. 存儲(chǔ)空間解析

3. TC397單片機(jī)的Memory Map和一些備注

1. ECU啟動(dòng)流程

圖總比文字直觀:

?

如上圖所示,上電以后其實(shí)就三步: "運(yùn)行ROM的啟動(dòng)函數(shù) -- 跳轉(zhuǎn)到FLASH里的Startup函數(shù) -- 跳轉(zhuǎn)到我們熟悉的main函數(shù)" 。 所以FLASH里的Startup函數(shù)其實(shí)才是最先執(zhí)行,且用戶可以修改的函數(shù)。只是它一般都被封裝好了,所以才沒(méi)有接觸到。

如果你想寫B(tài)ootLoader,就在Startup函數(shù)的基礎(chǔ)上改就ok了。

2. 存儲(chǔ)空間解析

以下將對(duì)上面那張圖的PFLASH,DFLASH等名詞進(jìn)行解釋:

重要且有用的:

2.1 掉電后數(shù)據(jù)不會(huì)消失的FLASH,EEPROM

PFLASH: Program Flash用來(lái)存程序,價(jià)格便宜,配的容量也大,我用的這款足有16M

DFLASH: Data Flash用來(lái)存用戶數(shù)據(jù),雖然叫Flash其實(shí)它是EEPROM,成本比FLASH高,我這款才1M多

FLASH 和EEPROM的最大區(qū)別是FLASH按扇區(qū)(section)擦寫,用來(lái)存儲(chǔ)程序這種大但不太頻繁更改的data,成本低。EEPROM則按字節(jié)(Byte)擦寫,存儲(chǔ)用戶數(shù)據(jù)這種小的,零碎的,總是在變的data時(shí),擦寫速度快。

2.2 掉電后數(shù)據(jù)會(huì)消失的RAM

RAM:速度快,甚至?xí)菷lash快50%以上。由于RAM空間有限,單片機(jī)運(yùn)行的時(shí)候,程序存儲(chǔ)在flash,但數(shù)據(jù)會(huì)存儲(chǔ)在RAM,即CPU從flash中取指令,從RAM中抓數(shù)據(jù)。

重要但沒(méi)啥用的:【直接轉(zhuǎn)到第三章如果你趕時(shí)間】

擴(kuò)展閱讀:

a: 當(dāng)然你也可以可以通過(guò)#pragma CODE_SECTION等將程序先從Flash拷到RAM里面,再在RAM里面運(yùn)行,來(lái)提升運(yùn)行速度。詳見(jiàn)Running an Application from Internal Flash Memory 第四章“Copying Sections from Flash to RAM” [1]

b: 馮諾依曼,哈佛結(jié)構(gòu): [2]

?


2.3 鏈接文件(Linker File)

總的來(lái)說(shuō)linker file用來(lái)定義數(shù)據(jù)和代碼具體存放在哪一塊。比如它會(huì)規(guī)定存儲(chǔ)在Flash的啟動(dòng)函數(shù)_START()的存儲(chǔ)地址和BootROM里面reset vector內(nèi)預(yù)設(shè)的地址匹配,這樣復(fù)位以后就總會(huì)從啟動(dòng)函數(shù)_START()開(kāi)始執(zhí)行
  • 即reg.h 里面將寄存器的地址重命名,所以向寄存器寫其實(shí)就等于向該地址賦值
  • 而link file里面則是將函數(shù)和變量存在哪個(gè)地址做了規(guī)定

具體定義見(jiàn)下圖:

?

這張圖進(jìn)一步解釋了linker file在存儲(chǔ)中的作用[3] :

?

3. TC397單片機(jī)的Memory Map和一些備注

先來(lái)一張從用戶手冊(cè)里拿來(lái)的單片機(jī)Memory Map:

?

可以看到:

1. 對(duì)這款6核ECU,core0到5都有自己的專屬FLASH,大小為3M(core5是1M),讀取它有專屬的接口FPIn,速度快

2. 每個(gè)core內(nèi)部都有16k的program cache和16k的data cache。 PSPR和DSPR稍大,看起來(lái)是2級(jí)緩存

3. 這6個(gè)core沒(méi)有太大的區(qū)別,唯一就是core0和core1的DSPR(data scrachpad RAM)大一些。240KB,其他的core是96KB

4. 可以用的RAM還有LMU,DAM和4M的EMEM。但根據(jù)datasheet,DAM不支持ASIL B及以上的軟件【becasue of hardware safety mechanism】

5. 對(duì)于第一條里提到的FLASH,對(duì)于同一塊物理存儲(chǔ)空間。它們可以在地址0x8000,0000通過(guò)總線進(jìn)行cache access,也可以在地址0xA000,0000通過(guò)總線進(jìn)行non-cache access, 這是比較有意思的

6. 因?yàn)槭荰C397 -ADAS,所以有額外的EMES,SPU,RIF,CIF以及擴(kuò)展的HSM

Reference:

1. http://www.ti.com/lit/an/spra958l/spra958l.pdf

2. 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

總結(jié)

以上是生活随笔為你收集整理的单片机断电后静态存储区里面还有数据吗_单片机启动流程和存储架构详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。