本文来源电子发烧友社区,作者:李先生, 帖子地址: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文章
198浏览量
11919
发布评论请先 登录
相关推荐
热点推荐
泰凌微电子多系列SoC率先支持Zigbee 4.0标准 助力更高效的连接
连接标准联盟最新发布的Zigbee 4.0标准,为低功耗物联网连接带来了全新升级!泰凌微电子迅速响应,旗下TLSR9、TL3、TL7系列SoC已率先实现对该标准的支持,以硬核技术助力智
瑞芯微RV1126B开发套件评测大赛正式开赛!
大赛简介EASYEAI灵眸科技正式启动2025年首届“瑞芯微RV1126B开发套件评测大赛”,以“硬核实践,赋能未来”为主题,面向开发者开放价值835元的EASYEAINano-TB开发套件
TI CC1311P3 LaunchPad™开发套件技术解析与应用指南
Texas Instruments CC1311P3 LaunchPad™ 开发套件设计用于加速开发SimpleLink™ 亚1GHz无线MCU。该器件支持TI 15.4堆栈和专有射频协议。CC13XX-CC26XX软件开发套件
贸泽开售适用于边缘计算和嵌入式应用的Altera Agilex 3 FPGA C系列开发套件
FPGA C系列开发套件。此开发套件采用紧凑型桌面外形设计,并可选配子卡,支持插入PCIe 3.0 x1插槽。这款多功能、低功耗的电路板适用于工业、医疗、视频和安全等领域的嵌入式
发表于 08-04 17:27
•763次阅读
【高云GW5AT-LV60 开发套件试用体验】三、LED灯控制实验
【高云GW5AT-LV60 开发套件试用体验】三、LED灯控制实验
高云软件开发环境搭建好以后,进行正式的FPGA编程前,必须使用安装好的Gowin 软件,结合高云GW5AT-LV60 开发套
发表于 07-21 05:57
DA14594 BLE Pro开发套件 开源 (原理图+BOM+PCB)
DA14594-006FDEVKT-P BLE Pro开发套件 *附件:REN_DA1459x_开发板 硬件手册.pdf *附件:DA1459x Pro开发套件 (469-16-D) 物料清单
【高云GW5AT-LV60 开发套件试用体验】一、硬件篇
【高云GW5AT-LV60 开发套件试用体验】一、硬件篇
高云的Arora Ⅴ系列的GW5AT-LV60 FPGA ,是高云半导体晨熙家族第5代产品,其内部资源丰富,具有全新构架的高性能 DSP
发表于 05-19 09:51
89元起!开源国产FPGA开发套件,提供原理图及配套参考例程的源代码
产品详情MES2KG开发板是一套基于紫光FPGA的开发套件,以紫光Compact系列PGC2KG-LPG100器件为核心,预留丰富的扩展IO及数码管、按键、LED灯,为用户提供基本的硬件环境,并且
AI功能(SC171开发套件V3)
开发套件V3.pdf
*附件:工程源码.zip
3
图像超分辨率(real esrgan x4plus)案例----基于SC171开发套件V3
9分09秒
https://t.elecfans.com
发表于 04-16 18:48
新品 | 视美泰AIoT鸿蒙开发套件SC-3568HA正式上市,已成功适配OpenHarmony 5.0 Release版本
近日,视美泰成功完成了其多系列产品与OpenHarmony5.0Release版本的深度适配工作,此次适配的产品涵盖了OpenHarmony5.0首发开发套件SC-3568HA、智慧终端主板
泰凌微电子荣膺2023年Andes晶心科技最具价值客户
我们非常高兴祝贺Telink泰凌微电子获得2023年Andes晶心科技最具价值客户的殊荣!Telink与Andes RISC-V核心D25F合作的TLSR9系列为物联网创新树立了新标杆
【正点原子STM32H7R3开发套件试用体验】4G联网工业设备控制网关
通过物联网平台,采集传感器数据,并控制实际的外设,实现一款工业设备控制网关
在之前一篇帖子中,有 开发套件开箱报告。
评测和实现的过程,将会逐步分享。
发表于 12-18 14:14
泰凌微TL7000系列芯片发布,财报亮眼
近日,泰凌微发布了其最新的TL7000系列芯片。该系列芯片采用多核或高处理能力单核设计,具备高算力、低功耗和灵活度高等特点,能够满足边缘AI
【正点原子STM32H7R3开发套件试用体验】开发套件开箱报告
非常有幸,能够体验正点原子STM32H7R3开发套件。
一直以来,用了不少正点原子的产品,总的来说,体验非常的好。
收到套件快递,开箱的那一刻,觉得就是那个正点原子的味儿,一直没变。
一、套件盒子
发表于 12-12 00:54

【泰凌微TLSR9系列开发套件试用体验】代码执行过程分析

评论