2214|0

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

TI实时内核SYSBIOS启动流程 [复制链接]

1 内容简介
对操作系统与非操作系统下TI芯片启动后的C语言初始环境配置流程进行整理介绍。包含:
第二章:运行支持库,介绍TI芯片运行支持库作用,非操作系统下程序起始位置,运行环境初始化流程。
第三章:SYSBIOS启动流程,介绍使用SYSBIOS实时内核时,芯片对应的启动过程。

2 运行支持库
2.1 ABI
应用程序二进制接口(ABI-Application Binary Interface)定义了一组在系统软件上编译应用程序所需要遵循的一套规则,一个通俗的理解:ABI定义了compiler该产生什么样的obj。ABI涵盖了各种细节,如:
 数据类型的大小、布局和对齐;
 调用约定(控制着函数的参数如何传送以及如何接受返回值),例如,是所有的参数都通过栈传递,还是部分参数通过寄存器传递;哪个寄存器用于哪个函数参数;通过栈传递的第一个函数参数是最先push到栈上还是最后;
 系统调用的编码和一个应用如何向操作系统进行系统调用;
 以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等;
ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中编译(注意这里是说可以重新编译,而编译时是符合该平台ABI规约的),然而ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。
TI平台编译环境现阶段支持COFF与EABI两类ABI标准,其中前者主要存在与老版本编译器中,而近期的新版本逐步转换为仅支持EABI标准。两者不兼容。

2.2 RTS
TI官方提供了运行时支持库RTS,用于替代旗下各系列产品上的C语言标准库功能,具体实现以下几点,本文档主要关注其中的“_c_int00”部分。


图 TI运行时支持库基本功能

在使用CCS编译代码后生成的MAP文件中我们可以看到“entry point”一栏信息,如下图:


图 map文件entry point图示

“entry point”表示整个程序的启始执行位置,位于平时理解的“main”函数之前,其负责系统在运行程序之前对整个软硬件环境的基本初始化工作。“entry point”实际是函数“_c_int00”的入口地址,函数“_c_int00”具体实现在芯片对应RST库内文件“boot.c”或“boot.asm”中,用户还可根据实际应用需求对函数“_c_int00”进行修改,重编译生成新的RST库。“entry point”一般会映射到系统复位的中断向量中。
从图3中我们可出,在非操作系统应用环境下,系统启动的软件过程就是由函数“_c_int00”为起点,完成环境初始化后,则跳转到main函数,开始执行应用程序。


图 函数“_c_int00”基本功能与操作流程

3 SYSBIOS启动流程
在SYSBIOS环境下,系统启动流程以main函数为中线,可分为main前与main后两部分。

3.1 Main前



图 sysbios启动流程

3.2 Main后


图 sysbios启动流程 main函数后

3.3 应用结束后操作
有两类接口用于结束应用进程:



图 应用程序结束执行

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表