久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2435|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

關(guān)于MCU和PC在代碼加載和運(yùn)行上的區(qū)別

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:416966 發(fā)表于 2018-10-28 22:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
MCU 異于 資源豐富的linux 平臺(tái)。 MCU(如: 基于Cortex V6M 的Cortex M0+ 等) Code 通常運(yùn)行在內(nèi)嵌Flash 中。 在某些特定應(yīng)用場(chǎng)合,需要將部分函數(shù)運(yùn)行于RAM 中。 昨天,為解決次問(wèn)題,實(shí)現(xiàn)了一種解法,具體做法如下:

1. 實(shí)現(xiàn)要運(yùn)行在RAM的 routine, 本routine 使用純匯編實(shí)現(xiàn), 如:

__asm void program_word2addr(uint32_t addr, uint32_t data)

{

push {r3, r4, r5, lr} ;save some regsiters

/*your code for this routine*/

pop {r3, r4, r5, pc}

}

2. 編譯時(shí),采用code 與運(yùn)行位置無(wú)關(guān)的編譯選項(xiàng) 如 (Keil --apcs /ropi/rwpi), 生成 *.axf;

3. 通過(guò)fromelf -c 將生成 *.axf 反匯編,找到對(duì)應(yīng)program_word2addr 實(shí)現(xiàn)部分, 并將routine 對(duì)應(yīng)的binary code Copy 到所要應(yīng)用的 Code 中,以只讀數(shù)組的形式出現(xiàn):

如:

const staic uint16_t s_flashProg2AddressCode[16] = {...., ....}

4. 定義 一個(gè)全局?jǐn)?shù)組, 如 static uint16_t g_code[16], size正好等于 s_flashProg2AddressCode的長(zhǎng)度;

5. 定義一個(gè)函數(shù)指針, 如 static void (*callFlashPrg2Address)(uint32_t addr, uint32_t data)

6. 定義一個(gè)函數(shù)實(shí)現(xiàn)將Code 運(yùn)行與 RAM如:

void run_prgcode_onram(uint32_t addr, uint32_t data)

{

memcpy(g_code,s_flashProg2AddressCode,32 );

callFlashPrg2Address = (void (*)(uint32_t addr, uint32_t data))((uin32_t)g_code + 1);

callFlashPrg2Address (address, data);

}

run_prgcode_onram, 便可以將program_word2addr 運(yùn)行于RAM中。

callFlashPrg2Address = (void (*)(uint32_t addr, uint32_t data))((uin32_t)g_code + 1); +1 的目的,時(shí)由于運(yùn)行平臺(tái)為 Cortex V6M , 采用的thumb指令集,根據(jù)ARM Spec 要 求完成。

callFlashPrg2Address (address, data); 則是實(shí)現(xiàn)RAM運(yùn)行program_word2addr 的關(guān)鍵所在
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品亚洲一区二区三区 | 久久99精品久久久久久国产越南 | 亚洲精品电影 | 最新中文字幕 | 国产精品一区二区三区久久久 | 色综合久久久 | 欧美四虎 | 精品日韩在线 | 能免费看的av | 午夜一区二区三区在线观看 | 国精产品一区一区三区免费完 | 国产在线观 | 91影院在线观看 | 欧美综合国产精品久久丁香 | 激情的网站 | 91免费版在线观看 | 日韩和的一区二区 | 久久男女视频 | 插插插干干干 | 91高清视频| 国产在线视频三区 | 成人在线免费观看 | 亚洲国产精品va在线看黑人 | 超碰在线97国产 | 日本a v在线播放 | 欧美一区二区三区在线播放 | 日韩一区二区三区视频 | 免费一区二区 | 欧美在线视频一区二区 | 草草视频在线播放 | 免费精品 | 手机av在线 | 亚洲精品成人网 | 性一交一乱一透一a级 | 亚洲欧美综合 | 欧美亚洲视频 | 日本久草| 在线观看www高清视频 | 国产欧美一区二区精品忘忧草 | 亚洲成人精品一区二区 | 日韩另类 |