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.

[参考译文] RTOS/TM4C1294NCPDT:如何修改 BIOS 代码并有效地重建 BIOS 代码?

Guru**** 2455560 points
Other Parts Discussed in Thread: TM4C1294NCPDT, SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/639914/rtos-tm4c1294ncpdt-how-to-modify-bios-code-and-rebuild-it-effectively

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件: SYSBIOS

工具/软件:TI-RTOS

如何修改 BIOS 代码并有效地重新构建它?

tm4c1294ncpdt
CCS6.1.3
tirtos_tivac_2_10_01_38
编译器:TI v5.1.1
XDC:3.30.004.52

在.cfg 文件中、BIOS 库类型被设定为自定义、所以当重建应用程序项目时、BIOS 库也应该被重建。 但我发现了问题:
1.通过将更多成员添加到"struct ti_SysBIOS_BIOS_Module_State_State"来修改 SysBIOS/BIOS.h。
2.重建
3.我在 configPkg/package/cfg/APmain_pem4f.c 中找到,ti_sysBIOS_BIOS_Module_state__V 不包含新成员。

那么、怎么了? 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jianyi Bao、
    SYS/BIOS 中的头文件是自动生成的、因此您所做的任何更改都将被写入。 您需要在 BIOS.XDC 文件中更改 Module_State。 但是、这实际上是一个高级主题、因为仅仅将成员添加到 Module_State 是不够的、您还必须确保在 BIOS.xs 中正确初始化它们。 您可以尝试解释您要尝试做的事情、可能有一种替代方法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请参阅e2e.ti.com/.../636949"。 我的应用程序在"BIOS_getThreadType()"中置位、因此我想在结构中的 ti_sysBIOS_BIOS_Module_State_threadType 前后添加一些变量、并将它们初始化为 BIOS_start 中的某些修复值(如0x12345678)。 当断言发生时、我可以检查这些变量。 如果它们被改变、那么也许某些通配指针会意外地改变 RAM。 这有助于解决该问题。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想向 Module_State 添加额外变量可能会起作用。 所以、将这些变量添加到 BIOS.XDC 中的 Module_State 中、然后在函数 module$static$init()中的 BIOS.xs 中初始化它们。
    您将看到这些语句
    mod.rtsGateCount = 0;
    mod.rtsGateKey = 0;
    最上方的位置。 假设新变量为"之前"和"之后"、则需要添加
    mod.before = 0x12345678;
    mod.after = 0x12345678;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、它不工作。

    1. 向 BIOS.XDC 添加新成员似乎正常、但在 BIOS.xs 中进行初始化会报告"XDC 运行时错误:TI.SYSBIOS.BIOS.Module_State#0:没有名为'protect_pre_1'的元素"
    2. 在 BIOS. xs 中删除初始化后、生成的 APmain_pem4f.c 仍不包含新成员。
    3. 实际上、在编译期间、BISO.h 不会自动生成。

    因此、"BIOS.XDC"看起来不是重建的一部分。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仅重建项目将不起作用。 您需要转到 TI-RTOS 安装的顶部目录、并按照 tirtos.mak 和用户指南中"重建 TI-RTOS "部分的说明进行操作。 只有这样、BIOS.XDC 中的更改才会反映在 BIOS.h 中
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Sasha。 我使用 gmake 重新编译它、它现在可以工作了。