色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 單片機MCU如何實現讓部分代碼運行在RAM中

單片機MCU如何實現讓部分代碼運行在RAM中 時間:2019-06-06      來源:華清遠見

隨著單片機硬件的發展,其中的RAM和flash越做越大。MCU在實際的使用中,通常程序都是運行在flash上的,RAM的高速空間并沒有得到充分的利用,如果我們的程序需要運行的更快,系統有更好的實時性,我們可以考慮將這部分代碼放到RAM中運行,下邊我們將以STMF103RCT6作為舉例,向大家介紹在keil環境中如何使程序在RAM中運行。

在STMF103RCT6單片機上有兩個存儲空間,一個是片上的FLASH(相當于硬盤),有256K,另一個就是SRAM(相當于內存),有64K。

下邊是使用keil生成項目時的項目大小信息:

Code:程序代碼不分大小

RO-data:程序定義的常量

PW-data:已經初始化的的全局變量

ZI-data:未初始化的全局變量,以及初始化為0的變量

下面給出三個值:

RO Size= Code + RO Data (程序占用FLASH空間的大小).

RW Size-RW Data +ZI Data (運行時程序占用RAM空間的大小).

ROM Size=Code + RO Data + RW Data (燒寫時程序占用FLASH空間的大小).

 

我們都知道,在燒寫程序的時候,需要燒寫bin文件或者hex文件到STM32的flash當中,三部分:cole, RO-data和RW-data,為什么不包含ZI數據呢,是因為ZI數據都是0,沒必要包含,只要程序運行之前將ZI數據所在的區域(這一區域在RAM中)一律清零即可。包含進去反而浪費flash存儲空間。

 

STM32上電啟動以后, cpu根據boot0和boot1的硬件引腳決定從flash還是ram中啟動,默認是從flash中啟動;啟動之后會搬運rw-data到ram,但是不會搬運code;也就是說 cpu執行的代碼是在flash中讀取的,而不是在ram中。

快速新建一個項目,使一個LED燈閃爍。

實現函數如下:

在main函數中:

通過查看xx.msp文件,可以看到LEDToggle函數編譯后的地址是放在flash中的

那么如何將LEDToggle函數放在STM32的SRAM中:

1.打開編譯后生成的xx.sct文件,修改該文件

同時可以看到

Flash起始地址:0x08000000

RAM起始地址:0x20000000

2.在xx.sct文件中,定義一個RAMCODE的section,放在RW_IRAM1執行區域(0x20000000-0x00002000)。

3.修改代碼

方法一:用#pragma arm section code = "RAMCODE" 和 #pragma arm section將需要放到SRAM中的程序包括起來;

然后編譯,重新打開xx.msp文件,可以看到LEDToggle函數編譯后的地址已經在SRAM中

方法二:在需要放到RAM中的函數前,用__attribute__((section("RAMCODE")))聲明該函數放在RAMCODE section中。

然后編譯,重新打開xx.msp文件,可以看到LEDToggle函數編譯后的地址同樣在SRAM中

注意事項:

注意使用方法一時,該函數中調用到的所有函數也要放到RAMCODE section中,#pragma arm section code=“RAMCODE ”和#pragma arm section中可以包含多段代碼。

上一篇:linux curl命令用法簡介

下一篇:STM32 keil開發環境搭建

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 国产精品女主播一区二区三区 | 亚洲精品久久久久69影院 | 中国大陆高清aⅴ毛片 | 黑人巨茎大战白人女40CM | 少妇的bbw性大片 | 久操线在视频在线观看 | 亚洲av永久无码精品一百度 | 影视先锋av资源站男人 | 999精品无码a片在线1级 | 亚洲午夜福利AV一区二区无码 | 无码少妇一区二区三区芒果 | 国产成人无码A片免费不卡 亚洲不卡av一区二区无码不卡 | GOGOGO高清在线观看 | 超薄肉色丝袜一区二区 | 麻豆传谋在线观看免费mv | 日本少妇高潮喷水XXXXXXX | 日日摸日日踫夜夜爽无码久久 | 怡红院成免费人视频 | 两个人日本WWW免费版 | 91蜜桃视频在线观看 | 亚洲AV无码成H人动漫无遮挡 | 俄罗斯粗大猛烈18P 亚洲成AV人片在WWW色猫咪 | 国产一二三精品无码不卡日本 | 日本精品啪啪一区二区三区 | 亚洲乱亚洲乱妇20p AV激情亚洲男人的天堂 | 老司机在线精品视频播放 | 国产一区二区三区免费高清在线播放 | 岛国精品 | 久久久久久亚洲AV无码蜜芽 | 精品亚洲成a人7777在线观看 | 色老头精品午夜福利视频 | 免费人妻无码不卡中文字幕系列 | 男人j放进女人j免费视频无遮挡 | 国产熟妇高潮叫床视频播放 | 国产古装全黄A级视频 | 51VV宅男天堂| 国产精品多人P群无码 | 国产精品自产拍在线观看55 | 午夜亚洲国产理论片 | 色综合久久久无码网中文 | 国产各种高潮合集在线观看 |