主题中讨论的其他器件: HALCOGEN
TMS570LS3137 CAN 引导加载程序
可容纳6 MB 以上应用的微型板,是否有适用于 TMS570LS3137的 CAN 引导加载程序源,这些源集成了 EMIF 闪存驱动程序,集成了 SPI 闪存驱动程序。
除了3.0MB 片上闪存外,外部32MB 闪存可以是 SPI 接口芯片或从外部连接到 TMS570LS3137的 EMIF 接口。
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.
TMS570LS3137 CAN 引导加载程序
可容纳6 MB 以上应用的微型板,是否有适用于 TMS570LS3137的 CAN 引导加载程序源,这些源集成了 EMIF 闪存驱动程序,集成了 SPI 闪存驱动程序。
除了3.0MB 片上闪存外,外部32MB 闪存可以是 SPI 接口芯片或从外部连接到 TMS570LS3137的 EMIF 接口。
2)我们使用的是 PEAK PCAN-USB IPEH-002021 (www.peak-system.com/PCAN-USB.199.0.html )。
3) 3)我已 从 http://processors.wiki.ti.com/index.php/TMS570_Hercules_MCU_Bootloader 下载 Hercules_MCU_Bootloader.zip 。
4) 4)您能帮我集成 TMS570LS3137 "CRC 验证"和 EMIF 驱动程序吗?我们使用的 S29GL256S 32MB_NOR 闪存未集成到现有的引导加载程序中。
5) 5)在 TMS570LS3137闪存位置上、CRC 校验模块驻留0x00000000到0x00010000十六进 制地址、引导加载程序驻留0x00010000到0x00020000十六进制地址。 我必须将完整的应用固件重新定位到地址0x00020000以在应用程序链接.cmd 文件中实现此目的我已将 IVT 地址和闪存起始地址从0x00000000更改为0x00020000。 但是在编译和链接.out 文件后,仍有字节位于从0x00000000到0x00000130的位置,所有其它实现都被移动到0x00020000。
为什么这些 IVT 或一些.obj 仍然位于0x00000000到0x00000130,如何解决此问题。 CCS 是否包含放置在这些位置的内在函数目标文件? 我应该在哪里找到解决方案。
6)我们的项目包括需要通过 SPI 接口更新应用程序的从微控制器。 为此,我将使用 SafeetyMCU_Bootloader\TMS570LS31x\boot_CAN 源文件,这些文件将作为 CAN 引导加载程序来更新 TMS570LS3137的固件,要通过 TMS570LS3137引导加载程序中的 SPI 更新从属微控制器的固件,我已启用 SPI_ENABLE_UPDATE 和 CAN_ENABLE_UPDATE。
这样、我的代码现在包含用于更新 TMS570LS3137应用程序和 SPI 驱动程序的 CAN 驱动程序。 但在注释中,我已阅读其中一个 CAN_ENABLE_UPDATE,SPI_ENABLE_UPDATE 应启用。 我是否可以启用 SPI_ENABLE_UPDATE 和 CAN_ENABLE_UPDATE 所有需要注意的事项,以便在 从 http://processors.wiki.ti.com/index.php/TMS570_Hercules_MCU_Bootloader 下载的 Hercules_MCU_Bootloader.zip 中启用 CAN 和 SPI 。
7) 7)您是否还能验证主题 https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/526417/1914373
该线程提到 PLL 未在 TMS570LS3137的 BOOT_CAN 中正确初始化,并且在从应用程序自复位时导致系统挂起。 您能不能告诉我需要修复 Boot_can 的内容。
当我尝试从应用程序代码(写入 SYSECR 寄存器位15和14)复位 MCU 时、甚至当我尝试复位时、也会出现此问题
MCU 将 RST 引脚拉低:它卡在 bootloader 函数 systemInit()的 mapClocks()中,所有这些都由_c_int00()调用。 更多
具体而言、在这一行中:
8) 8)您能否帮助我了解 TMS570LS3137的最新固定 CAN 引导加载程序、因为我在 https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/680543?RM48L950-erasing-flash-sector-0-results-in-a-hang-in-Fapi-BlockErase-上的引导加载程序中看到以下修复缺失
9)是否有引导加载程序文件 sys_startup.c、sys_core.asm、sys_intvecs.asm 代码在3个中断矢量表之间切换。 一个中断矢量表是 CRC 校验模块(CRC 校验模块驻留在 0x00000000到0x00010000十六进制) ,它验证应用程序固件(0x00020000到结束)的 CRC 以及引导加载程序的 CRC ( 引导加载程序驻留在0x00000000到0x00020000十六进制) 否则会生成诊断。 CRC 校验模块随后将控制引导加载程序,引导加载程序将处理到等待状态中的循环(如果需要更新应用程序),否则将执行应用程序。
感谢您提供的信息,我认为第2、3、4、5行项目已解决。
以下内容尚未解决。
7)将使用最新的 HALCOGen 驱动程序更新引导加载程序代码
使用最新 HALCOGen 驱动程序的最新引导加载程序代码
8) 8)如果需要、我将查看并更新 CMD 文件。
修复了"擦除闪存扇区0会导致 Fapi_BlockErase 中挂起"
10)是否可以一次性将整个应用程序下载到 SRAM、然后写入闪存(否)以使电路板砖型并避免中止条件下的故障。
一个新问题是 闪存 API 有任何限制,晶体 频率 应以160MHz 运行?
您能否提供引导加载程序(具有最新的 HALCOGen )以及180MHz 晶体频率(如当前示例中所述),它被称为160MHz 晶体频率
//
//
//用于为微控制器计时的晶体的频率(MHz)。
//
//这定义了运行的微控制器所使用的晶振频率
//引导加载程序。
//
#define CRYSTICL_FREQ 16 //MHz
#define SYS_CLK_FREQ 160//MHz