人妻蜜と1~4中文字幕月野定规 ,国产精品成人va在线播放,色优久久久久综合网鬼色,WWW插插插无码视频网站

分散加載
發(fā)布時(shí)間:2020-02-21

1、什么是分散加載 ??

??????簡單來說就是讓編譯器高速MCU內(nèi)核哪里存的是代碼、哪里存的是數(shù)據(jù),去哪個(gè)特定的地址找到下一步需要運(yùn)行的函數(shù),就是高速編譯器把每一個(gè)編譯好的函數(shù)、數(shù)據(jù)放到具體的哪一個(gè)物理地址。

?

2、分散加載常見應(yīng)用場景

????????* Bootloader & 程序升級

?????Bootloader的原理就簡單來說在MCUFlash里面同時(shí)擺放2個(gè)(或多個(gè))不同工程的程序,一個(gè)Bootloader程序和一個(gè)用戶程序,那么這就需要調(diào)整分散加載文件,以達(dá)成在一個(gè)Flash里面同時(shí)擺放兩個(gè)不同程序的目的。

???????程序升級都是為了增加一個(gè)小功能或修復(fù)一個(gè)小BUG,不需要全部升級而是只升級一點(diǎn)點(diǎn)。當(dāng)然要實(shí)現(xiàn)這個(gè)功能同樣需要分散加載的配合,把可能會后續(xù)升級的部分函數(shù)或數(shù)據(jù)事先分配好空間,留好空間上的余量,這些都需要分散加載來完成。

?

????????* 加速程序運(yùn)行速度(如:對速度有較高要求的算法等、RTOS kernel

????????SRAM中運(yùn)行的程序要比在XIP Flash中執(zhí)行要快,性能提升明顯。

?

????????* 訪問擴(kuò)展存儲&對存儲區(qū)的劃分

???????如果要把外擴(kuò)的存儲用于運(yùn)行代碼/擴(kuò)展RW數(shù)據(jù)段等用途,簡單來說就是把片內(nèi)地址映射到片外,需要按照尋址空間的方式來訪問擴(kuò)展存儲的話,比如擴(kuò)展Nor-Flash、擴(kuò)展SDRAM、擴(kuò)展SRAM等,那就需要分散加載配合。(只作存儲數(shù)據(jù)的話,分散加載不是必要的!?。。?/span>

?

3、分散加載的基本結(jié)構(gòu)定義以及分散加載的目的

?

????Code段:表示程序代碼部分

????RO-data段:程序定義的所有常量以及const類型數(shù)據(jù)

????RW-data段:已經(jīng)初始化的所有靜態(tài)變量

????ZI-data段:未初始化的靜態(tài)變量

????RO段:指Code以及RO-data的統(tǒng)稱

????????????具體分布可查看對應(yīng)的*.map文件。

????RW+ZI數(shù)據(jù)段最終運(yùn)行時(shí)會占用片內(nèi)SRAM或外擴(kuò)的RAM存儲器,而Code+RO-data+RW-data數(shù)據(jù)最終會產(chǎn)生對片內(nèi)Flash的占用或外擴(kuò)程序存儲區(qū)的占用。

所以分散加載的根本目的就是:

????????* 指引把RO-data數(shù)據(jù)段、RW數(shù)據(jù)段從片內(nèi)程序存儲區(qū)里面(一般是片內(nèi)Flash),搬到片內(nèi)程序運(yùn)行區(qū)(一般是片內(nèi)SRAM;

????????* 在片內(nèi)程序運(yùn)行區(qū)(一般是片內(nèi)SRAM)內(nèi)分配ZI數(shù)據(jù)段運(yùn)行需要的空間并把這段數(shù)據(jù)初始化為0

????????* 初始化堆棧;

????????* 對于有些指定加載到程序運(yùn)行區(qū)(一般是片內(nèi)SRAM)的RO數(shù)據(jù)段,把他們加載到程序運(yùn)行區(qū)(一般是片內(nèi)SRAM)里面。

?

{ 類比:這個(gè)和使用的電腦運(yùn)行操作系統(tǒng)或者軟件原理類似,電腦就是把硬盤里面的操作系統(tǒng)加載到內(nèi)存里面,然后CPU從內(nèi)存里面取數(shù)據(jù)以及程序指令來運(yùn)行的。}

TIP

??????RW以及ZI數(shù)據(jù)段的初始化是在分散加載過程中完成的,也就是在__main中完成的,比如你定義一個(gè)全局變量,并給它賦值,只有在__main結(jié)束后你才能看到這個(gè)全局變量被賦值成功的,也就是說在__main之前,使用全局變量是行不通的。

關(guān)于億道電子

億道電子是國內(nèi)最全面的開發(fā)工具提供商,致力于將全球先進(jìn)的軟件產(chǎn)品引薦給國內(nèi)研發(fā)型企業(yè)使用,為企業(yè)提供研發(fā)、設(shè)計(jì)、管理過程中使用的各種軟件工具,并致力于和客戶一同提高研發(fā)、設(shè)計(jì)效率,縮短設(shè)計(jì)周期。億道電子先后與armAltium、AnsysQT、TestPlant、CollabNetParasoft以及TouchGFX等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并成為他們在中國區(qū)的重要分銷合作伙伴。億道電子專注開發(fā)、設(shè)計(jì)、管理工具數(shù)十年,客戶超過6000家,具有豐富的工具使用及客戶支持經(jīng)驗(yàn)積累,可以為客戶提供從arm開發(fā)、EDA板級設(shè)計(jì)、軟件編譯及測試工具、結(jié)構(gòu)設(shè)計(jì)工具、多物理場仿真工具以及嵌入式GUI工具等產(chǎn)品與服務(wù)。億道電子在北京、上海、深圳設(shè)有分公司,業(yè)務(wù)遍布全國。



摘自21ic網(wǎng)