[LiteOS移植]目標(biāo)芯片STM32F1 修改鏈接腳本

      網(wǎng)友投稿 812 2022-05-30

      上一章修改了Makefile,現(xiàn)在只需要修改一下鏈接腳本,大部分的移植工作就算做完了。

      什么是鏈接腳本?

      [LiteOS移植]目標(biāo)芯片STM32F1 修改鏈接腳本

      鏈接腳本全稱GNU-LD,供gcc工具鏈在鏈接階段時(shí)調(diào)用,一個(gè)hex/bin/elf文件內(nèi)有多個(gè)段,例如只讀數(shù)據(jù)段、代碼段、數(shù)據(jù)段、未初始化數(shù)據(jù)段等等,這些段在hex/bin/elf文件內(nèi)的排放順序取決于鏈接腳本,這里和大家說一STM32的例子,大家都知道在STM32的程序0地址開始為中斷向量表,當(dāng)發(fā)生中斷時(shí),程序會(huì)強(qiáng)制被硬件跳轉(zhuǎn)到0x0+offset(中斷的偏移地址)處,執(zhí)行該處的指令,我們一般就直接將跳轉(zhuǎn)到中斷服務(wù)程序的匯編指令存放在0x0+offset(中斷的偏移地址)處,這樣中斷就能得到處理,為了能確保跳轉(zhuǎn)到中斷服務(wù)程序的匯編指令一定在某個(gè)位置,所以我們需要使用鏈接腳本來控制鏈接。

      GNU-LD 在線文檔https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_mono/ld.html

      修改os.ld

      在targets\STM32F103RC\GCC目錄下有一個(gè)os.ld鏈接腳本,這就是gcc工具鏈鏈接時(shí)所調(diào)用的,在“LiteOS_Lab Makefile分析”章節(jié)中向大家講解過Makefile中如何控制gcc鏈接時(shí)調(diào)用os.ld文件。

      根據(jù)STM32F103Rx數(shù)據(jù)手冊可知其Flash起始地址為0x0800 0000,大小為256KB;RAM起始地址為0x2000 0000,大小為48KB,如果不想查閱芯片手冊也可以直接看之前我們通過STM32CubeMX生成的工程中的STM32F103RCTx_FLASH.ld得到以上數(shù)據(jù)。

      首先修改第36行的esrack,這是棧頂?shù)刂罚话阍O(shè)置為RAM的結(jié)束地址,因?yàn)槭菨M減棧,通過RAM大小加上RAM的起始地址得到,48KB*1024B=49152B轉(zhuǎn)換為16進(jìn)制得到0xC000,起始地址為0x2000 0000加上0xC000得到0x2000 C000;修改第33行的RAM大小為48K,F(xiàn)lash為256K,如果你移植的目標(biāo)MCU不是我這個(gè)型號(hào),請你按照前面所述方式進(jìn)行修改,修改后如下圖所示。

      鏈接腳本其余地方均保持原有即可,到這里就修改完成了,下一節(jié)可以開始創(chuàng)建工程了。

      輕量級(jí)操作系統(tǒng) LiteOS IoT

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:C++搭建集群聊天室(四):工程統(tǒng)帥神器 Cmake,我愛死它了
      下一篇:測試工程師職業(yè)素質(zhì)要求
      相關(guān)文章
      日韩一卡2卡3卡4卡新区亚洲| 在线亚洲精品自拍| 亚洲精品自在在线观看| 亚洲精品456播放| 亚洲国产成人精品无码久久久久久综合| 亚洲欧洲国产综合AV无码久久| 亚洲xxxx18| 亚洲综合激情五月丁香六月| 中国china体内裑精亚洲日本| 亚洲五月综合缴情婷婷| 亚洲AV无码一区二区三区牛牛| 久久精品国产亚洲AV蜜臀色欲| 亚洲免费观看在线视频| 亚洲乱码日产精品BD在线观看| 亚洲一级毛片免费观看| 亚洲成年网站在线观看| 亚洲狠狠婷婷综合久久蜜芽| 亚洲AV永久无码天堂影院| 在线观看亚洲精品专区| 国产啪亚洲国产精品无码| 亚洲宅男天堂在线观看无病毒| 亚洲精品国偷自产在线| 亚洲av无码不卡| 亚洲高清视频免费| 亚洲导航深夜福利| 国产午夜亚洲精品| 国产在亚洲线视频观看| 黑人大战亚洲人精品一区| 亚洲国产精品无码专区影院| 亚洲久本草在线中文字幕| 亚洲第一成年网站大全亚洲| 亚洲乱码卡三乱码新区| 亚洲欧美日韩中文高清www777| 偷自拍亚洲视频在线观看| 亚洲日本一区二区三区在线不卡| 国产亚洲精AA在线观看SEE | 亚洲AV无码欧洲AV无码网站| 久久精品国产亚洲av水果派| 亚洲第一成年网站大全亚洲| 亚洲成年人电影网站| 亚洲kkk4444在线观看|