3524|7

15

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

怎样用官方的boot_serial升级自己的用户程序???? [复制链接]

在基于Flash的bootloader 实现串口升级用户程序这个问题上卡了很久了,请各位坛友多多帮助。



本意是想实现TM4C1232D5PM的串口升级,摆脱JTAG口的限制。



现在面临的问题是,虽然可以用LM Flash Programmer通过串口下载程序,但是下载的用户程序始终不运行。下载的步骤详述如下:



1) 通过JTAG口下载官方例程boot_serial的.bin文件到目标板,LM设置的应用偏移地址为0;



2) 通过JTAG口下载官方例程boot_demo1的.bin文件到目标板,LM设置的应用偏移地址为0x2800;

    ( 此处应与boot_serial中的bl_config.h的定义  #define APP_START_ADDRESS       0x2800  一致;

      boot_demo1或者boot_demo2中也同样定义  #define APP_BASE   0x00002800);



3) 此后一直可以用串口下载boot_demo1或者boot_demo2的.bin文件。



然后,我尝试通过串口下载自己编写的应用程序,同样可以顺利下载,而且可以无限次重复下载,但是程序不运行。在自己编写的程序中同样定义了

#define APP_BASE   0x00002800   



为什么我自己写的程序不运行??求教。


最新回复

不好意思啊,刚看到。 我几乎没怎么用过 CCS,所以具体我也不太清楚。 你可以那官方的工程和你自己的工程设置做个对比,看看哪些地方不一样。 先看工程配置,然后看代码。  详情 回复 发表于 2015-6-11 10:49
 
点赞 关注

回复
举报

1803

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 
检查一下 MDK 或者 IAR 的工程的编译参数,需要对这些偏移地址进行设置

点评

版主大人,麻烦您指点一二,卡了很久了。万分感激。  详情 回复 发表于 2015-6-9 17:12
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
Study_Stellaris 发表于 2015-6-9 10:26
检查一下 MDK 或者 IAR 的工程的编译参数,需要对这些偏移地址进行设置

我是在CCS下进行,编译参数没有问题。

点评

CCS 也原理一样,需要检查一下 map 文件,这个地方也是需要配置的,你需要告诉编译器,编译出来的程序的起始位置不再是从 0 开始,这一点,你只是在程序里边定义了还不够,必须设置编译器。  详情 回复 发表于 2015-6-9 10:39
 
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

4
 
gonnamakeit 发表于 2015-6-9 10:33
我是在CCS下进行,编译参数没有问题。

CCS 也原理一样,需要检查一下 map 文件,这个地方也是需要配置的,你需要告诉编译器,编译出来的程序的起始位置不再是从 0 开始,这一点,你只是在程序里边定义了还不够,必须设置编译器。

点评

您说的map文件是指工程里的cmd文件吗?这里面有这样的代码: /* The starting address of the application. Normally the interrupt vectors */ /* must be located at the beginning of the application.  详情 回复 发表于 2015-6-9 11:43
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

5
 
本帖最后由 gonnamakeit 于 2015-6-9 11:35 编辑
Study_Stellaris 发表于 2015-6-9 10:39
CCS 也原理一样,需要检查一下 map 文件,这个地方也是需要配置的,你需要告诉编译器,编译出来的程序的起始位置不再是从 0 开始,这一点,你只是在程序里边定义了还不够,必须设置编译器。

请问版主要怎么设置?真心求教,请您别烦躁,我知道这种问题有点傻逼。map文件是哪个文件,在CCS下?
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

6
 
Study_Stellaris 发表于 2015-6-9 10:39
CCS 也原理一样,需要检查一下 map 文件,这个地方也是需要配置的,你需要告诉编译器,编译出来的程序的起始位置不再是从 0 开始,这一点,你只是在程序里边定义了还不够,必须设置编译器。

您说的map文件是指工程里的cmd文件吗?这里面有这样的代码:

/* The starting address of the application.  Normally the interrupt vectors  */
/* must be located at the beginning of the application.                      */
#define APP_BASE 0x00002800
#define RAM_BASE 0x20000000

/* System memory map */

MEMORY
{
    /* Application stored in and executes from internal flash */
    FLASH (RX) : origin = APP_BASE, length = 0x0000FFFF - APP_BASE
    /* Application uses internal RAM for data */
    SRAM (RWX) : origin = RAM_BASE, length = 0x20005FFF - RAM_BASE
}
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

7
 
Study_Stellaris 发表于 2015-6-9 10:26
检查一下 MDK 或者 IAR 的工程的编译参数,需要对这些偏移地址进行设置

版主大人,麻烦您指点一二,卡了很久了。万分感激。

点评

不好意思啊,刚看到。 我几乎没怎么用过 CCS,所以具体我也不太清楚。 你可以那官方的工程和你自己的工程设置做个对比,看看哪些地方不一样。 先看工程配置,然后看代码。  详情 回复 发表于 2015-6-11 10:49
 
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

8
 
gonnamakeit 发表于 2015-6-9 17:12
版主大人,麻烦您指点一二,卡了很久了。万分感激。

不好意思啊,刚看到。
我几乎没怎么用过 CCS,所以具体我也不太清楚。
你可以那官方的工程和你自己的工程设置做个对比,看看哪些地方不一样。
先看工程配置,然后看代码。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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