OpenEdv-开源电子网

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

ucos 程序的IAP 不能运行问题;

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2013-3-11
在线时间
0 小时
发表于 2013-6-24 16:09:34 | 显示全部楼层 |阅读模式
我在地址0X8000000-0X800A000(40K)的地址范围内,做一个IAP 程序,将UCOS 的程序烧写到FLASH 的0X800A000之后的位置。但是就是不能运行;
而普通的非UCOS程序比如LED 闪烁程序却能运行。这个UCOS 有关吗?还需要修改什么部分或者那部分没有注意到。另外我已经吧中断向量表的位置移到了0X800A000的地方。
请教各位大侠和原子哥。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2013-3-11
在线时间
0 小时
 楼主| 发表于 2013-6-24 20:53:26 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
好的,我继续看了下。确实是中断向量没配置好。现在已经可以了。。。谢谢原子哥。
和UCOS 本身没有关系。
回复 支持 1 反对 0

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-6-24 16:28:42 | 显示全部楼层
回复【楼主位】小城zjc:
---------------------------------
没遇过这样问题,都是可以的
1-1
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-24 16:31:36 | 显示全部楼层
怀疑中断向量没配置好.
好好参考下我们的IAP例程.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2013-3-11
在线时间
0 小时
 楼主| 发表于 2013-6-24 20:51:11 | 显示全部楼层
回复【2楼】mygod:
---------------------------------
好的,,,谢谢。
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-11-22
在线时间
0 小时
发表于 2014-11-14 09:34:14 | 显示全部楼层
应用IAP时,主要是两个方面容易出问题,一是用户固件在FLASH中烧写的位置,二是中断向量表根据用户固件偏移位置相应的偏移
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2016-1-17
在线时间
0 小时
发表于 2016-1-17 12:26:52 | 显示全部楼层
小城zjc 发表于 2013-6-24 20:53
回复【3楼】正点原子:
---------------------------------
好的,我继续看了下。确实是中断向量没配置好。 ...

你好,你这个问题是怎么解决的,我也遇到了同样的问题。用非Ucos的APP就可以正常运行,倒是用了ucos之后就运行不了。中断向量在ucos里你是怎么配置的
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2016-3-20
在线时间
2 小时
发表于 2016-3-20 13:16:10 | 显示全部楼层
又一个不说具体解决办法的帖子,真是服了,到底怎么解决的,愁白了头。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-7-4
在线时间
10 小时
发表于 2016-9-14 10:00:32 | 显示全部楼层
andybaby 发表于 2016-3-20 13:16
又一个不说具体解决办法的帖子,真是服了,到底怎么解决的,愁白了头。。。。。。。。。。。。

我最近也遇到了这样的问题
仔细看了一下
在3.5的库函数中
[mw_shl_code=c,true]void SystemInit (void)
{
  /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  /* Set HSION bit */
  RCC->CR |= (uint32_t)0x00000001;

  /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
#ifndef STM32F10X_CL
  RCC->CFGR &= (uint32_t)0xF8FF0000;
#else
  RCC->CFGR &= (uint32_t)0xF0FF0000;
#endif /* STM32F10X_CL */   
  
  /* Reset HSEON, CSSON and PLLON bits */
  RCC->CR &= (uint32_t)0xFEF6FFFF;

  /* Reset HSEBYP bit */
  RCC->CR &= (uint32_t)0xFFFBFFFF;

  /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
  RCC->CFGR &= (uint32_t)0xFF80FFFF;

#ifdef STM32F10X_CL
  /* Reset PLL2ON and PLL3ON bits */
  RCC->CR &= (uint32_t)0xEBFFFFFF;

  /* Disable all interrupts and clear pending bits  */
  RCC->CIR = 0x00FF0000;

  /* Reset CFGR2 register */
  RCC->CFGR2 = 0x00000000;
#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
  /* Disable all interrupts and clear pending bits  */
  RCC->CIR = 0x009F0000;

  /* Reset CFGR2 register */
  RCC->CFGR2 = 0x00000000;      
#else
  /* Disable all interrupts and clear pending bits  */
  RCC->CIR = 0x009F0000;
#endif /* STM32F10X_CL */
   
#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
  #ifdef DATA_IN_ExtSRAM
    SystemInit_ExtMemCtl();
  #endif /* DATA_IN_ExtSRAM */
#endif

  /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */
  /* Configure the Flash Latency cycles and enable prefetch buffer */
  SetSysClock();

#ifdef VECT_TAB_SRAM
  SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#else
  SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#endif
}[/mw_shl_code]

最后的那两行中VECT_TAB_OFFSET 要等于你的偏移量


在2.0的库函数中
[mw_shl_code=c,true]#ifdef  VECT_TAB_RAM  
  /* Set the Vector Table base location at 0x20000000 */
                NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
        #else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */
                NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
        #endif[/mw_shl_code]
在0x0中替换成你自己的偏移量就ok了
回复 支持 反对

使用道具 举报

3

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2017-9-19
在线时间
34 小时
发表于 2017-11-3 17:09:27 | 显示全部楼层
dsf243550544 发表于 2016-9-14 10:00
**** 作者被禁止或删除 内容自动屏蔽 ****

我修改了VECT_TAB_OFFSET 偏移量,还是没用啊。
回复 支持 反对

使用道具 举报

3

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2017-9-19
在线时间
34 小时
发表于 2017-11-3 17:10:12 | 显示全部楼层
真是要愁白头了,解决问题的方法说清楚啊!
回复 支持 反对

使用道具 举报

3

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2017-9-19
在线时间
34 小时
发表于 2017-11-3 17:11:31 | 显示全部楼层
我现在也是遇到这个问题! ucos程序启动不了!
回复 支持 反对

使用道具 举报

2

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2016-9-21
在线时间
50 小时
发表于 2018-9-19 10:21:19 | 显示全部楼层
steaven 发表于 2017-11-3 17:11
我现在也是遇到这个问题! ucos程序启动不了!

我也遇到了这个问题。请问解决了吗?
回复 支持 反对

使用道具 举报

26

主题

355

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
发表于 2018-9-19 18:03:57 | 显示全部楼层
mark 最近正在学这个
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 01:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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