0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-16 16:36 次阅读
本文来源电子发烧友社区,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2286475_1_1.html

前言



为了给后边的工作打下基础,需要先了解下程序的框架,和程序执行的过程。本文以UART_Demo为例进行讲解。
前提是已经搭建好开发环境,https://bbs.elecfans.com/jishu_2286222_1_1.html,打开UART_Demo工程。

链接脚本

从工程设置的链接器设置里找
poYBAGKnM3eACzlfAADlDhaL2YI268.png

找到链接文件如下
pYYBAGKnM3mAeKvXAAFTrPhA7II924.png

打开该文件

poYBAGKnM3uAHZ78AAFZBiSGGjg224.png


从如下信息可以看出,0x00000000处放置的就是中断向量
.vectors : { KEEP(*(.vectors )) }
. = 0x00000000;
从数据手册的第4章可以看到
128 KB instruction local memory (ILM)SRAM就是位于该地址处
pYYBAGKnM32AIqRmAAA8CKh_Qf4460.png

从如下信息可以看出,
NDS_SAG_LMA_FLASH = 0x20000000 ;
. = 0x20000000;
PROVIDE (BIN_BEGIN = .);
对应的是FLASH存储程序使用,有效1MB
对应 PROVIDE (FLASH_SIZE = 0x0100000);
poYBAGKnM36ADIDBAAAniuytwjc842.png

从以下信息可以看出
PROVIDE (_STACK_TOP = 0x00a0000);
栈指针指向的是DLM_CPU的高地址处。
pYYBAGKnM3-ARD4LAAAl7f_Rfiw676.png


其他的BSS,DATA段等的分配都可以类似的去分析。

启动代码

前面通过链接脚本找到向量段.vectors
所以搜索.vectors
poYBAGKnM4GAIcb4AABbh8Wc1jg487.png

poYBAGKnM4OAUE7YAACLZ11nbl4767.png

双击如下搜索到的结果
pYYBAGKnM4SAIJ1jAAA_mRBiDtM110.png

可以找到启动代码如下telink_b91m_driver_sdkchipB91bootcstartup_flash.S
poYBAGKnM4aAAdpQAAFKgoSMz0s498.png

.global_RESET_ENTRY
link文件的ENTRY(_RESET_ENTRY)对应,是程序的入口

_RESET_ENTRY:
j _START
第一条指令就是跳转到_START执行

后面就是相关的初始化操作
比如初始化栈指针,其中_STACK_TOPlink文件中的符号
/* 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
pYYBAGKnM4eAFTBkAAFCpGN8xB8451.png


总结
该芯片是RISC-V内核的,所以与其他RISC-V芯片的启动执行过程也是一样的,了解一种就可以知道其他的。学习嵌入式需要有融会贯通举一反三的能力,因为芯片内核架构众多,芯片类型更是千万。所以上述分析主要是介绍分析思路,细节介绍的不多,更多的细节需要自行去根据手册进行分析。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 泰凌微
    +关注

    关注

    7

    文章

    147

    浏览量

    10806
收藏 人收藏

    评论

    相关推荐

    【正点原子STM32H7R3开发套件试用体验】开发套件开箱报告

    非常有幸,能够体验正点原子STM32H7R3开发套件。 一直以来,用了不少正点原子的产品,总的来说,体验非常的好。 收到套件快递,开箱的那一刻,觉得就是那个正点原子的味儿,一直没变。 一、套件盒子
    发表于 12-12 00:54

    微电子:国内首家获得Zigbee PRO R23 + Zigbee Direct认证的芯片公司

    近日,基于微电子TLSR9系列SoC的Zigbee协议栈正式获得由CSA联盟颁发的Zigbee PRO R23 + Zigbee Direct的兼容平台认证证书,成为国内首家获得此
    发表于 12-10 17:27 136次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b>微电子:国内首家获得Zigbee PRO R23 + Zigbee Direct认证的芯片公司

    C2000™ F28003x系列LaunchPad™开发套件

    电子发烧友网站提供《C2000™ F28003x系列LaunchPad™开发套件.pdf》资料免费下载
    发表于 11-05 09:35 0次下载
    C2000™ F28003x<b class='flag-5'>系列</b>LaunchPad™<b class='flag-5'>开发套件</b>

    C2000™ F280015x系列LaunchPad™开发套件

    电子发烧友网站提供《C2000™ F280015x系列LaunchPad™开发套件.pdf》资料免费下载
    发表于 10-31 09:25 0次下载
    C2000™ F280015x<b class='flag-5'>系列</b>LaunchPad™<b class='flag-5'>开发套件</b>

    微电子推出Wi-Fi 6多协议TLSR9118 SoC

    微电子(股票代码:688591.SH),作为无线连接解决方案领域的创新先锋,近日正式宣布其突破性成果——TLSR9118 SoC的问世。这款里程碑式的芯片不仅标志着
    的头像 发表于 08-30 16:29 1840次阅读

    微电子发布Wi-Fi 6多协议TLSR9118 SoC

    近日,微电子(688591.SH)宣布推出其首颗支持Wi-Fi通信技术的多协议芯片——TLSR9118 SoC,进一步拓展了其在无线连接领域的产品布局。该芯片已经成功获得Wi-Fi认证,并向客户
    发表于 08-29 10:36 313次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b>微电子发布Wi-Fi 6多协议<b class='flag-5'>TLSR</b>9118 SoC

    【xG24 Matter开发套件试用体验】1-基本情况介绍

    参加[Silicon Labs xG24 Matter开发套件免费试用]活动,拿到了期待的EFR32xG24 Explorer 开发套件(一个基于 EFR32MG24 片上系统的小封装开发
    发表于 07-17 12:39

    低功耗再下一城!深耕Matter,降低客户开发门槛、加速产品迭代

    Day期间,业内领先的物联网芯片设计企业微电子展示了公司基于TLSR9系列芯片的Matter over Thread的一站式解决方案。  
    的头像 发表于 07-15 09:55 1751次阅读
    低功耗再下一城!<b class='flag-5'>泰</b><b class='flag-5'>凌</b>深耕Matter,降低客户<b class='flag-5'>开发</b>门槛、加速产品迭代

    【xG24 Matter开发套件试用体验】+开机启动

    xG24 Matter开发套件试用体验: 1.EFR32xG24 Explorer 套件是一个基于 EFR32MG24 片上系统的小封装开发和评估平台。EFR32xG24 Explor
    发表于 07-11 14:05

    微电子B91模组组合板Matter演示固件介绍

    B91模组组合板(TLSR921x Module kit)是微电子专为智能家居设计的子母开发板。本篇文章将重点介绍基于
    的头像 发表于 04-17 10:08 1074次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b>微电子B91模组组合板Matter演示固件介绍

    微电子发布国内首颗工作电流低至1mA量级的多协议物联网无线SoC

    微电子 (688591.SH)  宣布推出国内首颗工作电流低至 1mA 量级的超低功耗多协议物联网无线 SoC 芯片 TLSR925x 。 这款芯片在
    发表于 03-12 14:48 814次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b>微电子发布国内首颗工作电流低至1mA量级的多协议物联网无线SoC

    宣布推出国内首颗工作电流低至1mA量级的无线SoC芯片TLSR925x

    微电子(688591.SH) 宣布推出国内首颗工作电流低至1mA量级的超低功耗多协议物联网无线SoC芯片TLSR925x。
    的头像 发表于 03-12 09:23 946次阅读
    <b class='flag-5'>泰</b><b class='flag-5'>凌</b><b class='flag-5'>微</b>宣布推出国内首颗工作电流低至1mA量级的无线SoC芯片<b class='flag-5'>TLSR</b>925x

    【LicheeRV-Nano开发套件试用体验】+智能平板开发

    首先感谢Sipeed矽速科技和电子发烧友给与的这次机会,得以试用LicheeRV-Nano开发套件,并与大家共同分享与学习。 鉴于试用报告格式调整,后面亦按要求展现。 申请理由: 个人多年嵌入式
    发表于 03-06 23:05

    【LicheeRV-Nano开发套件试用连载体验】+ 实现三麦克纳姆轮小车自主导航

    【LicheeRV-Nano开发套件试用连载体验】+ 实现三麦克纳姆轮小车自主导航 非常感谢被选中成为Sipeed矽速科技、电子发烧友论坛组织的此次试用体验幸运儿,有机会参与
    发表于 03-03 14:20

    微电子TLSR921x系列芯片成功适配中移物联OneOS物联网操作系统

    近日,中移物联网有限公司(中移物联)与微电子(上海)股份有限公司(微电子)共同宣布,
    的头像 发表于 02-26 09:30 991次阅读