5804|3

12

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

TMS320F28335项目开发记录4_28335之启动模式(串口烧写Flash) [复制链接]

TMS320F28335启动模式TMS320F28335支持多种启动模式:
  1. //       $Boot_Table:  
  2. //  
  3. //         GPIO87   GPIO86     GPIO85   GPIO84  
  4. //          XA15     XA14       XA13     XA12  
  5. //           PU       PU         PU       PU  
  6. //        ==========================================  
  7. //            1        1          1        1    Jump to Flash <- "boot to Flash"  
  8. //            1        1          1        0    SCI-A boot  
  9. //            1        1          0        1    SPI-A boot  
  10. //            1        1          0        0    I2C-A boot  
  11. //            1        0          1        1    eCAN-A boot  
  12. //            1        0          1        0    McBSP-A boot  
  13. //            1        0          0        1    Jump to XINTF x16  
  14. //            1        0          0        0    Jump to XINTF x32  
  15. //            0        1          1        1    Jump to OTP  
  16. //            0        1          1        0    Parallel GPIO I/O boot  
  17. //            0        1          0        1    Parallel XINTF boot  
  18. //            0        1          0        0    Jump to SARAM  
  19. //            0        0          1        1    Branch to check boot mode  
  20. //            0        0          1        0    Boot to flash, bypass ADC cal  
  21. //            0        0          0        1    Boot to SARAM, bypass ADC cal  
  22. //            0        0          0        0    Boot to SCI-A, bypass ADC cal  
  23. //                                              Boot_Table_End$  
复制代码

一时兴起,先说一些题外话,关于烧写程序的问题:

1. 一般使用CCS+仿真器时,我们把程序烧进RAM中运行,这样运行速度快,方便实际项目的开发与调试;

注意此时用的是28335_RAM_lnk.cmd文件

2. 当项目完成时,一般我们会选择将程序烧进Flash中,以摆脱仿对真器的依赖;当我们用f28335.cmd连接文件时,会把程序烧进28335内部的Flash中,此时,就可以脱离仿真器运行了;从Flash启动;——也就是上面的

  1. XA15     XA14       XA13     XA12  
复制代码

即分别等于1 1 1 1 时,Jump to Flash;


当然,具体的配置不仅仅是修改cmd文件这么简单的,有时程序在RAM中运行良好,到Flash中后就会出现这样那样的问题;

最典型如US_DELAY延时的一个函数,在RAM运行是延时很精确的,但在Flash中却不一样了,这个后面会说;


3. 结束废话,进入正题,当我们要没有仿真器时,如何将程序烧进Flash中呢?

我们最上面的看启动方式中有SCI-A boot, SCI是串行通信接口,我们可以从串口启动引导28335;

在这之前,一般硬件上都有跳线设置,我们可以把XA12下拉为低电平;

这样就可以设置启动模式为:1 1 1 0 ——即为SCI-A启动


串口烧写Flash:

  第一步

下载hex2000,使用hex2000将ccs编译得到的.out文件转换为.hex文件;

将ccs编译得到的hex文件拷贝至到hex2000目录下;

开始——运行——到hex2000目录下 输入:
hex2000.exe -romwidth 16 -memwidth 16 -i -o LED.hex LED.out

出现下图所示信息代表转换成功:



第二张图是使用CCS自带的生成HEX文件的一个功能选项,这样可以不用下载hex2000;

  第二步
开发板切换为SCI-A启动模式,即1110;
将XA12接地即可,其他X13-X15保持上拉的3.3V不变;

  第三步
C2Prog下载地址:http://www.codeskin.com/c2prog-download

  第四步
串口接好,启动C2Prog,板子复位上电;

使用串口调试工具,测试打开的串口:发送ABC等应该原样返回信息;

配置C2Prog后,点program即可烧写


  第五步

切换为Flash启动,观察程序运行;

>>PS:我曾出现失败的错误提示:
CRC Info added at 0x00330809: 0x9D1C 0x57C0 0x0000

*** PLEASE RESET TARGET IN SCI BOOT-LOADER MODE ***
Connecting with target (autobaud)...  failed (no response)!

最后发现犯了一个简单的错误,开发板串口与电脑串口没有加电平转换芯片,导致串口工作不正常;

成功结果:



最新回复

感谢分享。  详情 回复 发表于 2018-1-29 14:42
 
点赞 关注(1)
个人签名路漫漫其修远兮,吾将上下而求索!(今天,你努力了吗?还记得你的目标吗?)

回复
举报

2700

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
好帖,学习了,
 
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
 
 
 

回复

3

帖子

1

TA的资源

一粒金砂(初级)

4
 
感谢分享。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表