This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMDSCNCD28388D:TMS320F2838x 复位 ARM 内核 SYS/BIOS

Guru**** 2540720 points
Other Parts Discussed in Thread: SYSBIOS, TMDSCNCD28388D

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/875581/compiler-tmdscncd28388d-tms320f2838x-reset-arm-core-sys-bios

器件型号:TMDSCNCD28388D

工具/软件:TI C/C++编译器

大家好

TI_RTOS 内核(SYS/BIOS)用户指南 SPRUEX3U 2018年2月

第 3.1章 SYS/BIOS 启动顺序

1. CPU 复位后立即执行目标/器件专用 CPU 初始化(从 c_int00开始)。

请参阅的《汇编语言工具用户指南》中的"程序加载和运行"一章

您的目标系列,了解有关此步骤和 cinit()步骤的详细信息。

2.在 cinit()之前,运行"reset functions"表(xdc.runtime.Reset 模块提供此挂钩)。

调用 Reset.Fxns[]数组中指定的函数。 这些复位功能只在上调用

在运行程序之前执行复位的平台。

3.运行 cinit()以初始化 C 运行时环境。

4.运行用户提供的"第一个函数"(xdc.runtime.Startup 模块提供此挂钩)。

5.运行所有模块初始化函数。

6.运行用户提供的"最后功能"(xdc.runtime.Startup 模块提供此挂钩)。

7.运行 Pinit()。

8.运行 main()。

那么、我在 TMDSCNCD28388D 板上调试的示例 tcpEchoF2838X 示例、

包含*。cfg 文件并相应地包含此文件  

 路径 SYS/BIOS ->系统->启动->模块设置

初始大小选项                                                                                    启动设置

堆大小0                                                                                                 用户复位函数- 空

堆栈大小2048                                                                                                   最大模块初始化通过- 32

参数大小0

在 C 运行时初始化之前调用的函数                     模块初始化前调用的函数

不适用                                                                                                                    第一个函数0 - ti.sysbios.heaps.HeapMem.init

                                                                                                                      Firstfunction 1 - ti_SysBIOS_family_ARM_f2838x_init_Boot_initStartup

第一个函数2 - ti_sysbios_hal_hwi_initStack

第一项功能3 - ti.sysbios.family.arm.m3.Hwi.initNVIC

模块初始化后调用的函数

不适用

    "模块初始化前调用的函数"列表中的函数1。 - ti_sysbios_family_arm_f2838x_init_resetISR、  

 跳转至汇编器标准 _c_int00、

但是,第 3.1章相应地提到,它应该在第1步中,但在第4步中完成。

因此、我对函数列表的正确性有一些怀疑。  

"模块初始化前调用的函数"列表中是否有正确的内容?

为什么将此函数放置在模块初始化之前调用的函数中

但不会到达

1) 1)重 置矢量、 如 用户指南 SPRUEX3U 2018年2月所述


2) 2) C Runtime 初始化前调用的函数  

我之所以问它、是因为上面提到的示例在 CM 应用程序加载和重新执行时出现问题(请参阅主题 "TMDSCNCD28388D:TCP/IP 调试")

此致

Andrii Shevchuk

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Andrii、

    您的格式未对齐、因此有点难阅读您所说的内容、但我认为我得到了您所要求的内容:
    我在您编写的"第一个函数"列表中看不到函数"ti_sysbios_family_arm_f2838x_init_resetISR"、
    因此、我不理解您为什么要询问它?  我假设您所放置的列表是我在下面复制的列表
    您的应用程序中正在调用的函数的实际列表吗?

    第一个函数0 - ti.sysbios.heaps.HeapMem.init

    Firstfunction 1 - ti_SysBIOS_family_ARM_f2838x_init_Boot_initStartup

    第一个函数2 - ti_sysbios_hal_hwi_initStack

    第一项功能3 - ti.sysbios.family.arm.m3.Hwi.initNVIC

    犹大

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Judahvang

    是的,你是对的。 这是我的错。

    我看到同样的情况。

    和 Accordihly *。map 文件

    已放置函数 ti_sysbios_family_arm_f2838x_init_resetISR

    复位矢量。

    所以我很抱歉。

    此致

    Andrii Shevchuk。