国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

xiaoyuhzou1228的個人空間 http://www.qingdxww.cn/space-uid-139997.html [收藏] [復制] [RSS]

博客

嵌入式編程第二篇:ARM單片機如何將函數定義到指定程序地址

熱度 10已有 1572 次閱讀2019-4-9 14:26

在單片機編程使用中,會涉及到將某些函數定義到指定的code區。此時需要對工程文件進行配置修改才可完成。本期針對ARM平臺單片機做出說明介紹

1、測試目標

將函數Communication_Test定義到Code區的指定地址0x1000位置

2、測試環境

LKT4304加密芯片算法工程、KEIL-ARM編譯軟件、

3、實現步驟

3.1 使用KEIL軟件導入LKT4304算法工程(KEIL軟件基本操作不再敷述,如不清楚請自行百度)

 

3.2 App_Main.c文件中聲明測試函數Communication_Test

extern void Communication_Test(u8 *in,u8 *out,u8 len);

 

3.3 App_fun.c文件中實現測試函數Communication_Test

void Communication_Test(u8 *in,u8 *out,u8 len);{

  u8 i;

    

  for(i=0;i < len;i++)

   out[i]= in[i]+1;

}

 

3.4 App_Main.c文件中調用測試函數Communication_Test,此處省略

 

3.5 編譯算法工程后,在\LKT4304_AppDemo\Out\Lst\路徑下找到 LKT4304_AppDemo.map,打開該文件。

 

3.6 尋找到Communication_Test編譯后存儲的地址。本例中,編譯后的默認地址如 1所示。

1. 默認編譯鏈接地址

 

3.7 回到算法工程,選擇Project->Options for Target ...->Linker,點擊Edit按鈕調 sc文件,如圖2所示

2. 打開sc文件

 

3.8 ARM_App.sc文件中,Code區起始地址是0x30000,如下圖所示:

3.sc文件中定義的Code

 

  將函數Communication_Test定義到Code區的指定地址0x1000位置,需要在 App_fun.c文件中增加 void Communication_Test(u8  *in,u8 *out,u8 len) __attribute__((section(".ARM.__at_0x00031000"))); 這樣一句代碼。如下圖所示:

3.9 編譯算法工程,并重新打開\LKT4304_AppDemo\Out\Lst\下的map文件,查看 Communication_Test函數所在地址,如圖4所示,該函數已經更換到0x31000地址上, 表明Communication_Test函數已經定義到Code區的0x1000地址。

4. 重定義后目標函數所在地址

 

至此,ARM單片機將函數定義到指定程序地址的方法已經實現。


路過

雞蛋

鮮花

握手

雷人

發表評論 評論 (21 個評論)

回復 小屁孩123 2019-4-11 13:57
LKT4304 Code區空間是多大的?
回復 ?-о 2019-4-11 14:11
專業性太強了,看不懂!當技術儲備吧!學習了………
回復 Mr.Wang 2019-4-11 16:36
同感,受教了,謝謝樓主分享!
回復 Test_wf 2019-4-11 19:16
請問4304都支持什么接口?
回復 xiaoyuhzou1228 2019-4-11 19:34
SPI/IIC 都支持的,但同時只能使用一個
回復 wang0327 2019-4-12 09:14
我對這個技術很感興趣,我會一直關注的
回復 tyl20100 2019-4-12 09:41
1 LKT4304是做什么用的?用于什么行業?
2 LKT4304是新產品嗎?什么時候推出的,安全性如何?
3 看起來有些復雜,開發會不會太難啊,有誰用過說一下
回復 miniminimini 2019-4-12 11:29
保護程序和重要數據都行,好多行業都能用到。
回復 kessy1 2019-4-12 15:58
LKT4304好像是他們去年新推出的32位的加密芯片,可以進行程序移植,安全等級很高
回復 tyl20100 2019-4-12 16:52
正好在做一款產品的加密,看到樓主的的文章,又有了新的思路,感謝樓主的分享,這樣的好文章樓主要多發表一點。真是雪中送炭。
回復 wang0327 2019-4-12 17:01
這文章對加密芯片的算法講得挺細,說明他們公司的技術人員很專業,技術能力很強,產品的安全度肯定很高
回復 Test_wf 2019-4-12 19:23
最近瀏覽過樓主的多篇文章,請問文中說到的LKT4304加密芯片和嵌入式編程第一篇中提到的LKT4106加密芯片其功能有啥區別?
回復 miniminimini 2019-4-13 08:03
具體你問問廠商,我只知道都是IIC接口。
回復 kessy1 2019-4-13 10:15
文中提到的測試環境是LKT4304加密芯片算法工程,那是不是說這種編程方法只能用于LKT系列的加密芯片中?
回復 Mr.Wang 2019-4-13 19:28
我認為算法工程跟芯片的型號應該是一一對應才可以。不然對于不同的芯片配置不同,肯定無法正常編譯。
回復 dg336699 2019-4-13 21:03
對嵌入式編程和ARM單片機感興趣的大神可以過來看看了,講解的真的很明白很詳細啊!
回復 QL87 2019-4-14 20:49
“ (section(".ARM.__at_0x00031000" ” 是arm指令集的指令嗎?
回復 Mr.Wang 2019-4-15 06:11
這不都寫著ARM 呢嗎,難道是51的不成,兄弟
回復 QL87 2019-4-15 09:20
這種方法是不錯,不過不是特殊需求或是專業人士還是慎用的比較好。強制轉換地址如果錯誤編譯器不會報錯的容易出問題。
回復 ?-о 2019-4-15 15:09
文章寫得這么詳細,不怕被同行業抄襲?看來有兩筆刷子
12下一頁

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
返回頂部
主站蜘蛛池模板: 秋霞看片亚洲先锋一区 | 黑人巨大人精品欧美三区 | 二区三区视频 | 在线视频日韩 | 精品国产一区二区三区久久久蜜臀 | 婷婷尹人香蕉久久天堂 | 亚洲欧洲免费 | 久久久高清日本道免费观看 | 毛片在线视频在线播放 | 哦好紧 | 国产欧美另类久久精品91 | 国产黄色大片又色又爽 | 亚洲一区 在线播放 | 四虎4hu新地址入口 四虎4h | 国产社区在线 | 传媒麻豆 | 五月婷婷激情视频 | 免费高清a毛片 | 四虎国产| 免费一区在线 | 传媒麻豆 | 国产亚洲精品自在线观看 | 精品亚洲综合久久中文字幕 | 玖玖免费| 国产高清一级在线观看 | 亚洲欧美视频在线播放 | 国产毛片在线 | 青青青视频精品中文字幕 | 五月婷婷六月丁香综合 | 欧美在线看片a免费观看 | 免费视频一区二区 | 国产福利在线观看第二区 | 国产黄色免费观看 | 日本精品久久久一区二区三区 | 重口调教女虐女长篇小说 | 精品一区二区三区 不卡高清 | 99精品视频在线观看re | 国产精品白嫩在线观看 | 好吊爽在线播放视频 | 国产精品视频一区牛牛视频 | 麻豆按摩|