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.
工具/软件:TI-RTOS
正如我所尝试的一切一样,没有任何与文档中的任何内容相匹配的内容。 我的目标是评估 AM33xx 的 NDK、最初是使用 BeagleBone。
NDK 文档 SPRU523J 明确指出:
"要安装 TI-RTOS (包括 NDK)、请在 CCS 中选择 View > CCS App Center。 单击 Code Composer Studio 附加组件的"查看更多"以查看所有 TI-RTOS 目标版本。 (第10页、第1.2.1节)
在我的 CCS 6.2应用中心中没有任何类似的东西。 当我尝试搜索时、它会将我带到 SYS/BIOS、我已经下载并安装了 SYS/BIOS。 那么、人们会假设安装了 NDK、对吧? 否
该文档显示"为中构成 NDK 的每个库提供了预构建的可链接库和源代码 \packages/ti\NDK 目录树。" (第13页、第1.3.3节)
我在 C:\TI\BIOS_6_46_02_47文件夹中搜索了 SYSBIOS 树、尽管上述声明声称 NDK 安装在名为"...\NDK..."的文件夹中、但没有任何关于 NDK 的内容。
这是在1月2106日修订的文档... 嗯。
我的问题:
1、实际 NDK 在哪里? 搜索会将我转到非常旧的帖子和链接。 我找不到任何东西会实际下载它。 尽管有文档、但它不在 CCS 应用程序中心。
2、当所有文档都不准确时、有人如何研究、学习和提出建议? 我的状态报告基本上是"仍在尝试查找正确的材料、因为文档不准确"。
我会在 NDK 论坛中提出这个问题... 如果有一个、但 Web 菜单上没有显示任何内容。 之前的帖子已发送到 TI-RTOS 论坛、但它们也不会出现在菜单上。 因此、我只剩下在这里提问。
Christopher、
NDK 不包含在 SYS/BIOS 内核本身(您已安装)中,而是一个单独的组件,它通常与内核(以及引导实用程序、芯片支持库、示例等其他软件组件)捆绑在 SDK 中。
对于 AM3352、您应该下载适用于 AM335x 的 Processor SDK、该 SDK 将此器件系列的内核、NDK 等捆绑在一起。 您可以通过以下链接下载 SDK: http://www.ti.com/tool/PROCESSOR-SDK-AM335X
RTOS 变体的顶级软件开发指南位于此 wiki 页面上: processors.wiki.ti.com/.../Processor_SDK_RTOS_Software_Developer_Guide
其中包括不同组件及其文档的链接、例如 :processors.wiki.ti.com/.../Processor_SDK_RTOS_NDK
如果您找不到您要查找的内容,请回复…
谢谢、
Scott
Christopher、
我刚刚体验了 CCS App Center、并看到在 CCS 6.2版本(9月)之前、TI-RTOS 版本显示为供下载、如您参考的 NDK 文档中所述。 我不知道为什么在6.2中进行了更改,但会提交一个错误报告,以更新文档或将其添加回应用程序中心(如果应该显示在那里)。 感谢您报告此问题!
但我仍在尝试了解您最终如何安装其他安装...
您从哪个版本的 Starterware 开始? 我看不到您下载 controlSUITE 的任何内容,它仅适用于 C2000 MCU。 如果我通过 Google 搜索“Starterware”,我将看到 StarterWare TI Sitara 处理器页面(www.ti.com/.../starterware-sitara),该页面指向 AM335x 的处理器 SDK。
您是否可能是根据 CCS 中显示为可用软件的内容来安装产品? 请您澄清一下吗?
谢谢、
Scott
Scott、
感谢您的关注、获得一些帮助让人放心。 我做了一些不有序的事情。 那么、这是我的长故事...
由于 CCS 的试用时间有限、我希望在开始时钟之前先安装文档、教程、安装和实际的物理硬件。
后来、当我看到 Eric Wilbur 的视频并解释了 CCS 的许可时、我继续安装了它。 但在此之前、我查看过 Wiki、论坛、下载 PDF 以及我可以获取的任何其他材料。 下载论坛所指的内容、其中许多内容我都是旧的。 我实际上从未安装过 Starterware、它只是其中的一个下载。
我的目标是为 AM3352提供概念验证。 我了解到 BeagleBone Black 使用同一个系列的 CPU、因此我正在努力实现这一目标(我有一个 Blackhawk 在与我通话以将他插入... 但我正在等待一个接头焊接到 BBB 板上、以便我可以连接 JTAG)。
但是、Eric Wilbur 的视频还说他没有介绍 Sitara 系列(许多不同的名称、都很令人困惑)。 确实说过,视频和实验室介绍了 C28x (即 TMS320F280xxx? 还有一个 C2000... 更多的混淆)、因此我认为这是一种学习 CCS 和工具的好方法。 我从未使用过 JTAG、因为 Microchip (我近20年的工作经验)在我使用的任何器件上都没有该接口。
我进行了搜索、选择了 Piccolo Launch XL 板... 运算。 实验室手册中未包含有关该手册的详细信息、也未包含样片。 接下来、我在论坛上抱怨说、安装 CCS 后、没有为器件定义 GPIO 的头文件、所有这些样本由于缺少头文件等而无法编译。 我被指向 ControlSUITE 以填补这些空白。 现在、我在控制套件内部看到、头文件和库的所有"device_support"都有版本号、但也有"development _kits"中的某些版本号的副本... 有什么区别、它对任何事情都至关重要吗? 我不知道、也没有发现任何细节。
收到 Piccolo 并开始开发后、我发现我在挖掘和实际操作过程中发现的所有冲突信息、信息缺口等。 有些是不完整的信息、有些是非常旧的信息、其他问题在我向自己教授时会出现。 我有很多软件包、我提前下载了、但我没有安装所有软件包。 然后、我发现 CCS 为您管理所有这些内容。 好的。 但我发现 CCS 实际上并未设置其中的许多内容、只是下载它们、您必须将它们解压缩并放入"TI"文件夹、或者运行它们的安装程序。 现在 CCS 已经下载了我已经下载的其他版本。
这是一个巨大的挑战。 我花了5天以上的时间尝试弄清楚如何让我的 Piccolo 以不受约束的方式运行代码。 显然、引导 ROM 通过一个例程来决定从何处引导、然后(一个选项)将其引导至闪存(在 sprufn6a 中进行了解释)... 但是、无法让 C 编译的目标代码将入口点设置到引导 ROM 指向的该地址。 七个 PDF 文档之后、在 spra958l 的第6章中、我发现它:一个*。asm 文件来声明标签并设置跳转。 被埋葬在2013年1月的一份文件中,其中包含几十张与我没有任何匹配的屏幕快照... 我曾接受过这样的培训、将这些类型的文档忽略为不正确的、因为它们太旧了。 (还有... 我的一个项目需要*。asm 文件、但有一个项目不知道为什么需要该文件)。
我想 JTAG 调试器会绕过所有这些内容、并强制程序计数器始终将编译器设置为"_c_int00"。
顺便说一下、我无法设置任何断点。 我收到一个错误、表示所有这些错误都已被使用(资源不足)。 但我从未设置任何...? 我想调试器已经将它们全部用于自己?
所以,这是我的圣诞假期:-)
谢谢!
Christopher Scott Weber
您好、Christopher、
很抱歉耽误你的时间。 感谢您详述您的艰难旅程。 TI 在全球拥有多个业务部门、多个器件系列和每个业务部门内的许多不同器件、以及在这些业务部门之间共享的许多软件组件。 软件组件的捆绑和发布随着时间的推移而发生变化、并且在不断发展。 因此、一些较旧的文档可能会根据最近的捆绑包提供冲突信息、例如与安装和默认位置相关的信息。 我们将转向 SDK 模型、以使这一切变得更简单、更一致、例如新的 Processor SDK。
以下几点:
[引用用户="Christopher Weber"]
(还有... 我的一个项目需要*。asm 文件、但有一个项目不知道为什么需要该文件)。
[/报价]
我想知道这是否是因为闪存中的跳转例程从一个应用程序中持续存在,而另一个应用程序不需要它作为应用程序映像的一部分?
[引用用户="Christopher Weber"]
顺便说一下、我无法设置任何断点。 我收到一个错误、表示所有这些错误都已被使用(资源不足)。 但我从未设置任何...? 我想调试器已经将它们全部用于自己?
[/报价]
允许的断点数量会因器件而异。 我希望您至少有一个可用的(除了调试器在加载时可能放置在 main()以用于 Go to main()功能的一个外)。 如果您尚未看到它、请在以下位置对 C28xx 断点和配置进行一些说明: http://processors.wiki.ti.com/index.php/Hardware_Breakpoints_and_Watchpoints_for_C28x_in_CCS
希望这对一些人有所帮助。
谢谢、
Scott
您好、Scott、
我查看了有关断点的特写。 这里没有什么新东西,这是我以前做的。 数十年来、我一直在调试 Windows 和 Linux、Microchip PIC 大约有15年以上。 尽管观察点非常酷(在 Windows 中完成、但它会使调试速度减慢得令人震惊)。
新的是、突然、我可以设置它们。 认真地说、我不知道为什么我以前会遇到错误、但这些项目的最新版本、例如 CCS、不会让我失败。 总之、我想这是件好事、但我很想知道发生了什么变化。
嗯、这里是自举的问题、我已经解决了、但不知道它为什么起作用、或者不起作用。
两者的启动方式相同(sprufn6a 和 SPRS902C): 从0x3F FFC0处矢量地址引导、该地址被复位。 然后、在完成引导 ROM 后、最后出现一个条目
位于0x3F 7FF6处的闪存中的点。 到目前为止还可以……
这两个器 件似乎都需要一个名为"codestart"的标签、该标签位于0x3F 7FF6、此地址称为闪存入口点。
两个项目、都是从示例中获取的...:
"Example_LaunchPagesDemo" |"任务28"是的一个示例项目
是随 |使用 Sys/BIOS 中的"任务"提供的代码
LaunchPad |使用单个 C 文件、和
使用单个 C 文件、以及指向 driverlib.lib 的链接|链接
要 driverlib.lib、IQMath.lib |我构建它、加载它并运行它
和 rts2800_ml.lib |没问题。
我重建并加载它、没有 prob。 |
在我将两个项目的代码下载到闪存后、左侧的代码在下电上电后运行、右侧的代码不运行。
这两个测试是完全一样的: 下载编译的代码、请参阅它运行到 CCS、停止调试、拉动 USB 线路、然后将其插回(或将其插入到单独的 USB 电源适配器中)。
这只有在编程过程中没有将地址0x3F 7FF6的入口点实际设置为 "_c_int00"或"codestart"时才有意义。 我深入了解了"cmd"文件...
左侧的不会在任何位置定义条目地址。 它使用一个从示例链接的名为"F2802x_Headers_nonBIOS.cmd"的提供文件。
右侧的一个将其定义为(省略的其他内容):
begin :origin = 0x3F7FF6,length = 0x000002/* 用于“引导至闪存”引导加载程序模式。 *
codestart :>开始 页= 0
(我会上传项目、但几乎每个文件都链接在一起、这意味着解析每个文件的实际位置、更改其属性等。)
"diverslib.lib"文件似乎有一个标记为"codestart"的点、该点应满足要求。 但它不会。 左侧的工程甚至不会在链接器命令文件中定义"codestart"。
我可以在下电上电后使右上角的文件运行、方法是还包含一个名为 boot.asm (spra958l)的文件、该文件定义了标签"codestart"并跳转到"_c_int00"。。。。 全部三行。 好的,这是有道理的(为什么我不能定义"_c_int00:>开始页= 0" 并且具有相同的效果?)。 没有意义的是、左侧的工程在没有"boot.asm"的情况下工作的原因。
请记住、这些是原始的、未经编辑的、导入到 CCS 中的示例支持项目。
不知怎么说、someway、左侧的项目 正在正确设置该入口矢量、我可以在映射文件中看到它。 但我不知道它是什么定义的。
我最终会明白这一点、因为我是一个令人厌恶的触发器。
但我的沮丧是、为什么我必须挖掘...? 不应该提供教程、文档等。回答这个简单的问题吗?
在你的空闲时间考虑一下它:-)
-CSW
实际上、考虑"已链接"文件、它们应该与几乎任何安装相关、因为它们是从"device_support"中链接的。
我压缩了这两个文件、并将它们连接在一起。 以支持我在上述答覆中的讨论。
您好、Christopher、
很抱歉、我花了这么长时间才回到这个问题。
我看了这两个项目,我认为演示项目中不需要显式.asm 文件的原因是… 它们使用不同的 driverlib.libs;演示项目使用的 driverlib.libs 具有 codestart、而任务28项目使用的 driverlib.libs 显然没有。 我不知道为什么这些 driverlibs.lib 不同。
演示项目从文件 F2802x_asmfuncs.obj 中获得 codestart:
/Flash/Example_F2802xLaunchPad_demo.map: 003f7ff6 00000002 driverlib.lib:F2802x_asmfuncs.obj (codestart)
使用的 driverlib 是
C:/ti/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib
task28项目使用不同的 driverlib:
C:/ti/controlSUITE/device_support/f2802x/v222/f2802x_common/lib/driverlib.lib
这个没有 F2802x_asmfuncs.obj 或明显是 codestart,因此需要项目中的 boot.asm 来提供该文件。
再说一次,我不知道这里的历史,也不知道为什么这些 driverlibs 在这方面是不同的。 这是奇怪的,我想你试图弄清楚是非常令人沮丧的。 :o/
此致、
Scott
阿尔法里··· 这是我找到的内容。
在 Project | Properties...下 在 C2000 Linker、Advanced Options、Symbol Management 下、您将"Specify program entry point for the output module"设置为"code_start"
(至少这是 CCS 6.2下的内容。 了解未来版本的人...) 请记住为"Debug"和"Release"配置设置它。
我找到的文档告诉您创建一个符号为"codestart"的 asm 文件、并设置 cmd 文件。 但"driverlib.lib"的符号名为"code_start"。。。 不要把它们弄糊涂了:-)
所以:
然后、我会收到以下警告:
警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段"codestart"
警告#10247-D:在没有 SECTIONS 规范的情况下创建输出段"ramfuncs"
警告#10063-D:指定了"_c_int00"以外的入口点符号: "code_start"
第一个和第二个警告: 谁告诉它创造这些? 我已将其从 CMD 文件中删除。 我正在解析所有其他 make 文件、脚本等... 找不到任何对它的引用。 但生成的"...LinkInfo.xml "显示了一个 codestart 符号和一个相当任意的地址 :0x3d7804。 为什么? 它来自哪里?
第三个警告: 嗯、是的、是的。 我将其从"_c_int00"更改为"code_start"。 那么为什么链接器可以找到"code_start"并将其分配到正确的入口点、但却找不到"_c_int00"呢? (顺便说一下,一个入口点无法看到它如何将它连接到 CMD 文件标签"BEGIN")
好像我在这里失去了土地... 对正在发生的情况了解更少...
您好、Christopher、
同样,很抱歉,我的回答很慢,我已经不在办公室了。
我想解决一些有关 codestart 的神秘问题,在这些不同的情况下,最好在 C2000微控制器论坛中启动新的线程。 就 NDK 在哪里,我们从最初的问题中得到了很大的解决。
对于*TI-RTOS*应用程序,我们通过一个特殊的“引导”模块提供了一种机制,允许 TI-RTOS 应用程序从闪存引导。 在这里、我们明确地发出汇编代码、以便在从闪存引导时跳转到应用程序入口点。 我认为这最终可能是您所需要的。 您可能会对查看新信息有所了解、但此处有一个简短的说明: processors.wiki.ti.com/.../BIOS_for_the_28x
是否要为此打开一个新线程、其中 codestart 来自问题? 我认为您最终希望在 AM3352上运行、但我不清楚您是否要继续使用 Piccolo Work…
此致、
Scott