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

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

博客

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

熱度 10已有 1543 次閱讀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
文章寫得這么詳細,不怕被同行業抄襲。靠磥碛袃晒P刷子
12下一頁

facelist

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

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
返回頂部
主站蜘蛛池模板: 寡妇一级a毛片免费播放 | 日韩亚洲 | 国产日韩欧美精品一区二区三区 | 欧美久| 成 人 黄 色 视频免费播放 | 91三级在线 | 亚洲欧美日本国产一区二区三区 | 日本剧免费网站 | 欧美人与动性行为高清视频 | 久久国产影视免费精品 | 嫩草影院永久在线一二三四 | 亚洲欧美一区二区三区久久 | 青青草国产在线观看 | 高清视频 一区二区三区四区 | 杰罗德游戏在线观看完整版免费 | 国产天堂 | 日韩在线 中文字幕 | 国产特级毛片aaaaaa毛片 | 一级毛片成人免费看免费不卡 | 国产精品视频久 | 欧美日韩国产在线人成 | 亚洲va | v11av78| 日日艹夜夜艹 | 天堂 在线最新版在线 | 久热官网 | 日日摸夜夜添夜夜免费视 | 女老师完整版 | 男女操操操| h肉动漫在线观看 | 王者荣耀之白丝玉足榨精 | 四虎影院永久在线 | 精品不卡一区中文字幕 | 日日噜噜夜夜狠狠tv视频免费 | 亚洲综合在线网 | 欧美人与动物交 | 国产精品成人va在线观看 | 亚洲国产欧美在线不卡中文 | 国产成人啪一区二区 | 国产精品手机视频 | 国产麻豆视频网站 |