社区导航

 

搜索
查看: 1675|回复: 1

[求助] 使用TM4C1230H6PM的芯片,在flash中烧写两个程序,发现无法从一个应用程序跳转到另...

[复制链接]

2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2015-3-31 17:14 | 显示全部楼层 |阅读模式
我使用的是TivaWare BootLoader user's guide --SW-TM4C-BOOTLDR-UG-2.0.1.11577 这个手册,平台硬件是TM4c1230H6PM的处理器,开发环境为Keil。
我想使用IIC的方式来让我自己写的应用程序实现自动更新固件程序,现在已经把bootloader文档看得差不多了,也看了些TI的例程,遇到以下问题,希望有人可以帮助到我,thanks very much!
1.我自己写一个应用程序(m4_update),基于project那个例子修改的,里面做了这样几件事情,main()函数中,初始化串口0(作为调试程序打印消息)和GPIO引脚(PB2作为输入引脚),然后读取PB2的值,如果为高电平(需要升级),则进入我的Updater()函数(这个函数是直接使用boot_serial那个工程中的Updater函数),否则就不需要升级,然后就直跳到我自己写的另一个点灯程序(m4_led)。
2.我用的LM Flash Programmer 烧写的,m4_update从flash的0地址开始烧写,然后m4_led是从0x2800开始的,当两个程序都烧进flash后,设置PB2为0,不需要升级时我发现跳转到m4_led后无法正常运行,我的跳转语句是:(*((void (*)(void))(*(uint32_t *)0x2804)))();?????确定执行到这一句,因为我在这句话前加了一句打印语句: UARTprintf("call application..........\n");这句话可以打印,请问是哪里的问题呢?或者是我的思路有问题??
3,以上是我现在正要解决的问题,大问题是我怎么让我的TM4c1230H6PM支持通过I2C方式实现在线升级固件程序,小问题是我怎么解决我上面提到的跳转问题,还希望大家能帮到我这个刚接触硬件的IT小菜鸟,谢谢您!先谢谢了!!


回复

使用道具 举报

1886

TA的帖子

0

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

荣誉会员勋章

发表于 2015-3-31 17:23 | 显示全部楼层
官方有支持 IIC 升级的 bootloader ,你可以用在那个基础上面改一下。

回复

使用道具 举报

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

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-19 09:04 , Processed in 0.108357 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表