TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28379D: IPC BOOT

Part Number:TMS320F28379D

例程sci_flash_kernal_cpu1能顺利下载到CPU1中,但sci_flash_kernal_cpu2例程下载不到CPU2中,感觉是下载地址不正确,pc程序计数器一直停留在最开始的地方0x3fe00a,请问这应该怎么解决?例程没有任何改动。

CPU2一直是no symbol are defined!

Susan Yang:

好的,我会在测试后给您回复

,

Susan Yang:

另外对于双核 IPC(处理器间通信),请参阅以下研讨会,特别是第 11 章

https://training.ti.com/c2000-f2837xd-microcontroller-workshop

本次研讨会逐步介绍如何处理设备的双核调试内容。

,

user6574429:

您好,请问测试结果怎样?程序下载进去能正常运行吗?

,

Susan Yang:

我使用launchpad也是不可以的,我怀疑是launchpad不支持sci boot的原因。

测试其他的dual例程是没有问题的

,

user6574429:

cpu2程序下载进去跑不起来而cpu1的能跑起来就有点奇怪了,我怀疑是不是CPU2程序的cmd文件配置不对导致程序的入口地址不对?

,

Susan Yang:

/* BEGIN is used for the "boot to SARAM" bootloader mode */

BEGIN : origin = 0x000000, length = 0x000002

user6574429 说:我怀疑是不是CPU2程序的cmd文件配置不对导致程序的入口地址不对?

配置是没有问题的

另外在F2837xD_sci_flash_kernels_cpu01.c内

//! In this example, we set up a UART connection with a host using SCI, receive//! commands for CPU1 to perform which then sends ACK, NAK, and status packets//! back to the host after receiving and completing the tasks. This kernel has//! the ability to program, verify, unlock, reset, run, and boot CPU2 to SCI//! boot loader. Each command either expects no data from the command packet//! or specific data relative to the command.//!//! In this example, we set up a UART connection with a host using SCI, receive//! an application for CPU01 in -sci8 ascii format to run on the device and//! program it into Flash.

,

user6574429:

那CPU2程序下载不进去是什么原因?我换了一个cmd文件就能跳到main函数

,

Susan Yang:

user6574429 说:我换了一个cmd文件就能跳到main函数

换了哪一个cmd?您也是launchpad测试的?

,

user6574429:

Susan Yang 说:换了哪一个cmd?您也是launchpad测试的?

是的,我换了2837x_RAM_Lnk_cpu02.cmd

,

Susan Yang:

我看了一下,使用launchpad是会卡在

即使是使用您换的2837x_RAM_Lnk_cpu02.cmd,虽然在load时可以跳到main,但是cpu1还是会卡在上面的语句

即不能从CPU1使用sci boot 来使能cpu2

launchpad是不支持sci boot的

,

user6574429:

我需要解决的就是让程序进入main就行了,但是我的直接跳不到main函数中?这是什么其情况?

,

user6574429:

Susan Yang 说:

cpu1还是会卡在上面的语句

即不能从CPU1使用sci boot 来使能cpu2

通过更改scia的引脚能够实现通过sci从主机上下载程序

,

Susan Yang:

请问您现在是想实现什么功能呢?launchpad的sci boot而后在flash运行?

,

user6574429:

我就是想把这个程序当作二次bootloader烧入到flash中

,

user6574429:

但是程序烧入flash后在调试模式下能运行,重新上电后就不能运行了(我增加了关闭LED灯的程序来判断程序是否运行)

,

Susan Yang:

以下是launchpad的说明

https://www.ti.com.cn/cn/lit/ug/sprui77c/sprui77c.pdf 

user6574429 说:但是程序烧入flash后在调试模式下能运行,重新上电后就不能运行了

您使用的是哪种boot呢?是否有可能是根本就没有boot起来?

,

user6574429:

Susan Yang 说:您使用的是哪种boot呢

boot引脚设置为GET boot模式(拨码开关设置为0,1,1),没有对bootctrl寄存器进行设置,使用默认模式,默认模式是FLASH BOOT

,

Susan Yang:

sci_flash_kernel 是利用GPIO设置的串口引导方式,然后通过ROM中的SCI BOOT将flash_kernel从PC端加载到RAM中运行,然后kernel运行后接收串口发过来的应用程序的数据进行flash操作。

flash kernel是ROM里面的,ROM里面的SCI boot需要配置GPIO来进入这种模式,让它跳转到Flash kernel的代码

如之前所说,该launchpad不支持sci boot,所以上面的是行不通的。您需要使用control card

,

user6574429:

Susan Yang 说:flash kernel是ROM里面的,

Susan Yang 说:通过ROM中的SCI BOOT将flash_kernel从PC端加载到RAM中运行

您提到的这两个flash_kernel应该不是同一个东西吧,一个是固化在boot RAM中的一个是二次bootloader吧?

,

user6574429:

Susan Yang 说:ROM里面的SCI boot需要配置GPIO来进入这种模式,让它跳转到Flash kernel的代码

我的想法是把flash_kernel烧到flash中,通过flash boot启动flash_kernel,并进行应用程序下载

,

user6574429:

Susan Yang 说:该launchpad不支持sci boot,所以上面的是行不通的

我已经把scia的管脚更换成仿真器中的gpio42,43,flash_kernel程序下载到RAM中后能实现与主机通信,并且能将应用程序烧到flash中。

,

Susan Yang:

user6574429 说:我已经把scia的管脚更换成仿真器中的gpio42,43,

您是带仿真器来在CCS内进行上述操作的?默认在CCS下debug模式使用的是仿真器boot模式

https://www.ti.com/lit/an/sprabv4d/sprabv4d.pdf 

,

user6574429:

好的,谢谢您的回复, 我还有一个疑问,如果烧写了两个工程到flash的不同位置(程序没有覆盖)中,采用flash启动,那么上电后程序是进入哪个工程运行?

,

Susan Yang:

user6574429 说:那么上电后程序是进入哪个工程运行

这取决于您boot程序内设置的跳转到APP的地址是哪一个

,

user6574429:

您好,请问如果板子支持SCI boot模式,那么SCI boot函数是rom里面已经存在的,还是需要用户下载进去的?

,

Susan Yang:

user6574429 说:那么SCI boot函数是rom里面已经存在的,还是需要用户下载进去的?

一般来说,引导 ROM 在出厂时已设定好引导加载软件。 引导模式信号(通用的 I/O)用于指示 bootloader 软件在上电 时要使用哪种模式。

具体您可以看一下

Figure 4-9. Overview of SCI Boot Function 

https://www.ti.com.cn/cn/lit/ug/spruhm8i/spruhm8i.pdf 

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28379D: IPC BOOT
分享到: 更多 (0)