本次开发所用平台为TI的DSP芯片,型号TMS320F28377D。在开发过程中难点是芯片的驱动调试,下面记录在开发中的调试记录及问题点和解决方式。

首先本芯片在官方能够得到例程,但是未找到例程的完善使用方式,所以只能参考而不能编译及运行。

由于是接到项目后首次使用TI芯片及CCS编译环境,所以编译环境的熟悉比较重要,首先建立一个空白的项目工程,需要配置目标芯片及仿真器,此步骤较简单可参考网上的步骤;然后需要在工程内放入开发中需要的外设及软件运行环境,包括headers,driverlib,common等,可从官方例程获取。

添加  2837xD_FLASH_lnk_cpu1.cmd文件,此文件为DSP的内存划分文件,根据实际需求对内存进行划分;也是仿真时程序的下载位置文件,该文件为在FLASH上下载及仿真。

添加 F2837xD_Headers_nonBIOS_cpu1.cmd,该文件为DSP的启动配置文件,没有此文件芯片无法正常运行(本人在调试时现象为时钟倍频出错,初始化时在InitSysPll阻塞无法继续运行)。

配置完成后编译能够通过则能够保证程序挣够正常运行(以上只是简单说明,详细的工程建立请参考其他资源,本文不会赘述)。

开始调试

1.CAN调试中问题及解决

28377D芯片有两个CAN外设,首先确认使用了哪一路CAN,以及CAN的IO引脚,对GPIO和CAN进行基本配置,由于项目中使用轮询方式,所以并未配置中断。

CAN基础配置完成后需要对CAN邮箱配置,在本次开发中只用了两个邮箱(一收一发)

接收邮箱需要配置ui32MsgID及ui32MsgIDMask,ui32MsgID为想要接收的CANid,ui32MsgIDMask为ui32MsgID起作用的位标志;这两个配置组成了CAN的滤波器,若不需要进行滤波则将ui32MsgIDMask设置为0,同时ui32Flags需要配置MSG_OBJ_USE_ID_FILTER才能使ui32MsgIDMask起作用。

2.timer,wdg

对照例程配置好时间即可,注意TIMER溢出标志位为1使需要再写入1才能清除

3.FLASH

FLASH驱动的运行基于官方的lib文件,通过调用官方API函数实现擦写功能,以官方例程方式运行基本不会产生问题,注意在写FLASH时写入方式,如果使用only data方式写入会存在ECC错误中断导致死机。

在调试时发现FLASH操作在调试模式(仿真)下运行和离线运行差异较大,其中一个现象为调试模式下flash ecc可能自动关闭,脱机运行就会产生ecc中断死机;而且flash ilb内容在调试模式下通过CAN下载进RAM可以运行,而离线模式不能正常运行。

同时Fapi_UserDefinedFunctions.c内函数存在LIB的回调,如果在内存中位置有变动可能存在跑飞风险

4.BOOT跳转到APP

由于本项目为一个产品的BOOT,所以最终需要实现绝对地址跳转,跳转前一定要关闭flash ecc。

5.其他

看门狗复位会清空RAM。

单地址双字节(16bit)

FLASH仿真只能两个断点,多了不能使用,新断点需要复位后产生作用。

建议开发前将优化关闭。

FLASH  lib文件必须固化到FLASH内,可通过其他方式下载RAM中,只下载到RAM不起作用。

TI DSP28377D芯片上基于UDS的BOOT调试记录相关推荐

  1. Linux上基于 Golang 实现 KeyLogger 按键记录

    Github 项目主页 实现原理: 记录每次按键 键值和时间戳, 记录每天累计键输入次数 报表计算规则: 获取时间段内 Top 值的键值,得到需要展示的键值 获取时间段内每天 键值 输入次数 热力图 ...

  2. ADI最新基带处理芯片 ADRV9026 FPGA 驱动开发及调试记录分享

    最近要驱动ADRV9026,ADRV9026为9009下一代,支持4收4发,但是高速JESD接口还是4X,同时支持JESD204B及204C协议,相对之前的9009官方会提供一个相对完整的工程,ADR ...

  3. 都2021年了,你还在考虑电赛飞行器赛题,备赛是否有必要用基于TI处理芯片的飞控问题?

    无名创新售后群问题节选 @无名小哥 能问下今年国赛会不会指定某一款飞控呀? 答:都2021年了,你还在考虑电赛飞行器赛题备赛是否有必要用基于TI处理芯片的飞控问题? 暂不论官方是否会限定TI芯片的飞控 ...

  4. DSP28377D开发笔记(一) 初步认识DSP28377D芯片

    前言 由于DSP28377D芯片包含众多的外设,且开发DSP所涉及的知识面比较广.所以本文只是简要的对该芯片的一些重要特性进行介绍,以及对如何学习DSP的开发提出一些本人的想法.在后续的文章中,将会对 ...

  5. 基于UDS的ECU bootloader

    CAN总线学习-3 最近学习基于UDS的bootloader,做一些总结. 1. 基于UDS的bootloader重要性 为了在不拆卸ECU的外壳的情况下也可以更新ECU的APP,我们需要有bootl ...

  6. TI单芯片毫米波雷达软件架构研究(一)

    TI的mmWave的软件架构非常复杂,附加价值很高.要想搞懂,得先死磕官方的mmWave SDK user guide.这篇文章的意义就在于让你可以快速读懂这篇UG. UG分为6个部分: 开箱体验: ...

  7. 基于UDS的BootLoader上位机源代码,支持ISO15765通信,支持PeakCAN , ZJG CAN等CAN卡, 支持S-record格式的二进制文件解析; 可二次开发或扩展应用

    基于UDS的BootLoader上位机源代码(C#) 基于UDS的BootLoader上位机源代码,支持ISO15765通信,支持PeakCAN , ZJG CAN等CAN卡, 支持S-record格 ...

  8. 【基于UDS服务的BootLoader架构和刷写流程】

    基于UDS的BootLoader下载,可以支持ECU生命周期的无限次刷写,通过CAN网络进行无需拆壳和DEBUG口的应用程序刷写,本文介绍了刷写服务和是三个阶段的刷写流程.也可通过无线模块实现空中升级 ...

  9. AI算法在FPGA芯片上还有这种操作?| 技术头条

    作者 | 杨付收 出品 | CSDN(ID:CSDNnews) 碾压与崛起 AI算法的崛起并非一帆风顺的,现在的主流的NN类的卷积神经网络已经是第二波浪潮了,早在上个世纪80年代,源于仿生学,后又发展 ...

最新文章

  1. 额外DC的安装、卸载方法以及注意事项。
  2. 听大佬学长RQY报告有感
  3. 上传文件 connection reset
  4. node.js之npm
  5. 【渝粤教育】国家开放大学2018年春季 0222-22T模拟电子电路 参考试题
  6. Holedox Moving
  7. 816 - Abbott's Revenge
  8. SAP License:SAP系统界面相关调整和设置
  9. Tiny Jpeg Decoder (JPEG解码程序) 源代码分析 2:解码数据
  10. ajax中的一些参数的含义及用法
  11. c语言 鼠标指针图标,WIN7系统鼠标图案DIY!自己动手,美不胜收!-win7鼠标指针...
  12. 控制文件全部丢失的恢复测试
  13. 锚点(anchor)的理解
  14. 基于FPGA的PWM加减速控制实现
  15. python爬虫小项目挣钱兼职,python程序员兼职平台
  16. JAVA:不使用第三个变量,交换两个变量的值
  17. 香农编码C程序及演示结果
  18. 关于使用ComponentName连接俩个Activity运行闪退的问题
  19. poj3270Cow Sorting(置换+贪心)
  20. 用计算机播放vcd教案,六年级信息技术下册 第六课制作班级VCD1教案 华中师大版...

热门文章

  1. BUUCTF 每天10道Misc Day5
  2. C++ 十六进制字符串 转 数字
  3. 简洁明了的ReentrantReadWriteLock总结
  4. spring cloud一脉相承Ⅰ-eureka实践篇
  5. 收集点骂人的话,省的老得打字
  6. 使用foreach遍历对象
  7. 微信小程序做问卷——前端部分(回答问卷)
  8. Can‘t uninstall ‘scipy‘. No files were found to uninstall.以及scipy安装问题解决方法
  9. Flash骨骼绑定做动画
  10. oppo r15 android 8,安卓8.1好评!OPPO R15入网:高配6G+前后2000万镜头