本文來源電子發燒友社區,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2286475_1_1.html
前言
鏈接腳本
啟動代碼
進入用戶代碼
前言
為了給后邊的工作打下基礎,需要先了解下程序的框架,和程序執行的過程。本文以UART_Demo為例進行講解。
前提是已經搭建好開發環境,見https://bbs.elecfans.com/jishu_2286222_1_1.html,打開UART_Demo工程。
鏈接腳本
從工程設置的鏈接器設置里找
找到鏈接文件如下
打開該文件
從如下信息可以看出,0x00000000處放置的就是中斷向量
.vectors : { KEEP(*(.vectors )) }
. = 0x00000000;
從數據手冊的第4章可以看到
從如下信息可以看出,
NDS_SAG_LMA_FLASH = 0x20000000 ;
. = 0x20000000;
PROVIDE (BIN_BEGIN = .);
對應的是FLASH存儲程序使用,有效1MB,
對應 PROVIDE (FLASH_SIZE = 0x0100000);
從以下信息可以看出
PROVIDE (_STACK_TOP = 0x00a0000);
棧指針指向的是DLM_CPU的高地址處。
其他的BSS,DATA段等的分配都可以類似的去分析。
啟動代碼
前面通過鏈接腳本找到向量段.vectors
所以搜索.vectors
雙擊如下搜索到的結果
.global_RESET_ENTRY
和link文件的ENTRY(_RESET_ENTRY)對應,是程序的入口
_RESET_ENTRY:
j _START
第一條指令就是跳轉到_START執行
后面就是相關的初始化操作
比如初始化棧指針,其中_STACK_TOP是link文件中的符號
/* Initialize stack pointer */
la t0, _STACK_TOP
mv sp, t0
比如初始化DATA段,可以對照link文件查看段地址
/* Move Data from flash to sram */
_IDATA_INIT:
la t1, _DATA_LMA_START
la t2, _DATA_VMA_START
la t3, _DATA_VMA_END
_IDATA_INIT_BEGIN:
bleu t3, t2, _IZERO_BSS
lw t0, 0(t1)
sw t0, 0(t2)
addi t1, t1, 4
addi t2, t2, 4
j _IDATA_INIT_BEGIN
比如初始化BSS段,可以對照link文件查看段地址
/* Zero .bss section in sram */
_IZERO_BSS:
lui t0, 0
la t2, _BSS_VMA_START
la t3, _BSS_VMA_END
_IZERO_BSS_BEGIN:
bleu t3, t2, _IZERO_AES
sw t0, 0(t2)
addi t2, t2, 4
j _IZERO_BSS_BEGIN
以上操作不同的芯片都是類似的,一通百通,了解一個芯片其他的芯片也就都僚機了。至于其他芯片相關的操作可以對照手冊去理解,這里不再解釋。
最后進入main函數,進入用戶代碼
la t0, main
jalr t0
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
泰凌微
+關注
關注
7文章
152瀏覽量
10819
發布評論請先 登錄
相關推薦
泰凌微電子榮膺2023年Andes晶心科技最具價值客戶
我們非常高興祝賀Telink泰凌微電子獲得2023年Andes晶心科技最具價值客戶的殊榮!Telink與Andes RISC-V核心D25F合作的TLSR9系列為物聯網創新樹立了新標桿
【正點原子STM32H7R3開發套件試用體驗】開發套件開箱報告
非常有幸,能夠體驗正點原子STM32H7R3開發套件。
一直以來,用了不少正點原子的產品,總的來說,體驗非常的好。
收到套件快遞,開箱的那一刻,覺得就是那個正點原子的味兒,一直沒變。
一、套件盒子
發表于 12-12 00:54
泰凌微電子:國內首家獲得Zigbee PRO R23 + Zigbee Direct認證的芯片公司
近日,基于泰凌微電子TLSR9系列SoC的Zigbee協議棧正式獲得由CSA聯盟頒發的Zigbee PRO R23 + Zigbee Direct的兼容平臺認證證書,成為國內首家獲得此
發表于 12-10 17:27
?228次閱讀
泰凌微電子推出Wi-Fi 6多協議TLSR9118 SoC
泰凌微電子(股票代碼:688591.SH),作為無線連接解決方案領域的創新先鋒,近日正式宣布其突破性成果——TLSR9118 SoC的問世。這款里程碑式的芯片不僅標志著
泰凌微電子發布Wi-Fi 6多協議TLSR9118 SoC
近日,泰凌微電子(688591.SH)宣布推出其首顆支持Wi-Fi通信技術的多協議芯片——TLSR9118 SoC,進一步拓展了其在無線連接領域的產品布局。該芯片已經成功獲得Wi-Fi認證,并向客戶
發表于 08-29 10:36
?343次閱讀
【xG24 Matter開發套件試用體驗】power specification電源規格參數配置
【xG24 Matter開發套件試用體驗】power specification電源規格參數配置
用USB數據線接通電腦和開發banzi
啟動 Simplicity Studio5 開發
發表于 08-20 09:30
【xG24 Matter開發套件試用體驗】1-基本情況介紹
參加[Silicon Labs xG24 Matter開發套件免費試用]活動,拿到了期待的EFR32xG24 Explorer 開發套件(一個基于 EFR32MG24 片上系統的小封裝開發
發表于 07-17 12:39
低功耗再下一城!泰凌深耕Matter,降低客戶開發門檻、加速產品迭代
Day期間,業內領先的物聯網芯片設計企業泰凌微電子展示了公司基于TLSR9系列芯片的Matter over Thread的一站式解決方案。 ?
【xG24 Matter開發套件試用體驗】+開機啟動
xG24 Matter開發套件試用體驗:
1.EFR32xG24 Explorer 套件是一個基于 EFR32MG24 片上系統的小封裝開發和評估平臺。EFR32xG24 Explor
發表于 07-11 14:05
泰凌微電子發布國內首顆工作電流低至1mA量級的多協議物聯網無線SoC
泰凌微電子 (688591.SH)? 宣布推出國內首顆工作電流低至 1mA 量級的超低功耗多協議物聯網無線 SoC 芯片 TLSR925x 。 這款芯片在泰
發表于 03-12 14:48
?842次閱讀
泰凌微宣布推出國內首顆工作電流低至1mA量級的無線SoC芯片TLSR925x
泰凌微電子(688591.SH) 宣布推出國內首顆工作電流低至1mA量級的超低功耗多協議物聯網無線SoC芯片TLSR925x。
【LicheeRV-Nano開發套件試用體驗】+智能平板開發
首先感謝Sipeed矽速科技和電子發燒友給與的這次機會,得以試用LicheeRV-Nano開發套件,并與大家共同分享與學習。
鑒于試用報告格式調整,后面亦按要求展現。
申請理由: 個人多年嵌入式
發表于 03-06 23:05
【LicheeRV-Nano開發套件試用連載體驗】+ 實現三麥克納姆輪小車自主導航
【LicheeRV-Nano開發套件試用連載體驗】+ 實現三麥克納姆輪小車自主導航
非常感謝被選中成為Sipeed矽速科技、電子發燒友論壇組織的此次試用體驗幸運兒,有機會參與
發表于 03-03 14:20
泰凌微電子TLSR921x系列芯片成功適配中移物聯OneOS物聯網操作系統
近日,中移物聯網有限公司(中移物聯)與泰凌微電子(上海)股份有限公司(泰凌微電子)共同宣布,泰凌
評論