OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6768|回复: 6

stm32f051c8的IAP跳转APP,串口输入输出没反应?

[复制链接]

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2014-1-16
在线时间
23 小时
发表于 2015-6-4 15:01:21 | 显示全部楼层 |阅读模式
5金钱
IAP的例子是从官网下载的。AN4065里有详细说明,这部分不需要过多修改,直接下载到stm32f051最小系统里就是了。
使用windows自带的串口通信工具,超级终端,采用ymodem协议,顺利发送app生成的可执行bin文件。那么问题来了。app工程软延时正常,灯闪烁可见,却不见发送字节;


串口输入中断也是没有反应的。如果把IAP_Set();去掉,正常运行,闪灯、串口中断输入、输出都是正常的。IAP_Set();这个函数也参考了其他网站的资料。
[mw_shl_code=c,true]#define APPLICATION_ADDRESS ((uint32_t)0x08003000) /* Relocate by software the vector table to the internal SRAM at 0x20000000 ***/ #if (defined ( __CC_ARM )) __IO uint32_t VectorTable[48] __attribute__((at(0x20000000))); #elif (defined (__ICCARM__)) #pragma location = 0x20000000 __no_init __IO uint32_t VectorTable[48]; #elif defined ( __GNUC__ ) __IO uint32_t VectorTable[48] __attribute__((section(".RAMVectorTable"))); #elif defined ( __TASKING__ ) __IO uint32_t VectorTable[48] __at(0x20000000); #endif void IAP_Set() { uint32_t i = 0; /* Copy the vector table from the Flash (mapped at the base of the application load address 0x08003000) to the base address of the SRAM at 0x20000000. */ for(i = 0; i < 48; i++) { *((uint32_t*)(0x20000000 + (i << 2)))=*(__IO uint32_t*)(APPLICATION_ADDRESS + (i<<2)); } /* Enable the SYSCFG peripheral clock*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); //RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG, ENABLE); /* Remap SRAM at 0x00000000 */ SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM); } int main(void) { LED_Init(); USART_Configuration(); //?è???????ò??±í???????? 0x3000 IAP_Set(); LED_Init(); USART_Configuration(); while(1) { LED_Open();//?ò??led?? delay(); UART_send_byte(0x31); LED_Close();//????led?? delay(); UART_send_byte(0x33); } } [/mw_shl_code]


有的说官网的RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG, ENABLE);应该换成 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);就能解决进不了中断的问题。
 
试了试,没啥效果。
keil5.14生产bin的配置有别于4.xx版本。(用keil5.14版本可以解决5.12,5.10版本代码转换不正确的问题。)


app配置如下图:



搞了2天也没弄出来,想着又该阑尾了,希望大家搞过M0的IAP,进入APP还能相应中断的高手来指导指导,哪里出了问题啊?

实验一:led闪烁+串口一中断输(库函数).zip

2.04 MB, 下载次数: 498

stm32f0_IAP.zip

5.68 MB, 下载次数: 1409

上班清闲,喜欢钻研。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-4 21:58:31 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2014-1-16
在线时间
23 小时
 楼主| 发表于 2015-7-14 16:26:15 | 显示全部楼层
哪位大神可以帮我看看吗?小弟不胜感激。
上班清闲,喜欢钻研。
回复

使用道具 举报

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2014-1-16
在线时间
23 小时
 楼主| 发表于 2015-7-16 10:04:33 | 显示全部楼层

上班清闲,喜欢钻研。
回复

使用道具 举报

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2014-1-16
在线时间
23 小时
 楼主| 发表于 2016-2-25 10:09:43 | 显示全部楼层
看看。
123.png
回复

使用道具 举报

18

主题

109

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
金钱
223
注册时间
2016-8-11
在线时间
64 小时
发表于 2017-4-11 13:02:27 | 显示全部楼层

我是串口中断能响应,定时器中断没有响应。这是为什么?把地址改回08000000,中断映射到ram,一切正常。但是一旦改到0x08003000,中断映射到这个地址就不行。你最后搞定了吗?
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2018-9-4
在线时间
7 小时
发表于 2018-11-5 23:01:50 | 显示全部楼层
我也是用原子的底,现在50K的程序写好了,卡死在IAP。有 大神 解决的方法吗?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-5 21:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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