OpenEdv-开源电子网

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

stm32f429 IAP启动UCOSIII失败

[复制链接]

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-11-11
在线时间
12 小时
发表于 2016-11-11 16:10:03 | 显示全部楼层 |阅读模式
原子哥,我现在遇到一个问题,就是实现IAP的时候,可以正常启动ucosii但是ucosiii的时候,就卡在了void start_task(void *p_arg)入口那里了,麻烦帮忙看一下。代码如下:
int main(void)
{
    OS_ERR err;
CPU_SR_ALLOC();

    SCB->VTOR = FLASH_BASE | 0x4B000;

    Stm32_Clock_Init(360,25,2,8);      

    HAL_Init();                    
    delay_init(180);               
    uart_init(115200);           
    LED_Init();                  
OSInit(&err);  
OS_CRITICAL_ENTER();

OSTaskCreate((OS_TCB  * )&StartTaskTCB,  
     (CPU_CHAR * )"start task",   
                 (OS_TASK_PTR )start_task,   
                 (void  * )0,   
                 (OS_PRIO   )START_TASK_PRIO,   
                 (CPU_STK   * )&START_TASK_STK[0],
                 (CPU_STK_SIZE)START_STK_SIZE/10,
                 (CPU_STK_SIZE)START_STK_SIZE,  
                 (OS_MSG_QTY  )0,     
                 (OS_TICK   )0,     
                 (void    * )0,     
                 (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR|OS_OPT_TASK_SAVE_FP,
                 (OS_ERR  * )&err);   
OS_CRITICAL_EXIT();
OSStart(&err);     
    while(1)
    {
}
}


void start_task(void *p_arg)
{
OS_ERR err;
CPU_SR_ALLOC();
p_arg = p_arg;

printf("start_task 1\n");//打印到这里就没有往下了

CPU_Init();

printf("start_task 2\n");//
#if OS_CFG_STAT_TASK_EN > 0u

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

使用道具 举报

5

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2016-10-27
在线时间
76 小时
发表于 2016-11-11 16:29:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-11-11
在线时间
12 小时
 楼主| 发表于 2016-11-11 16:34:50 | 显示全部楼层
delay_init(180);这个里面有初始化的,现在是我把ucosiii的程序烧写到0x8000000这里是能正常启动的,用bootloader来启动就不正常了。同一个bootloader启动ucosii是没有问题的
回复 支持 反对

使用道具 举报

5

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2016-10-27
在线时间
76 小时
发表于 2016-11-11 16:57:36 | 显示全部楼层
将delay_init(180);移到OSStart(&err);前一行再看看
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2016-11-11
在线时间
12 小时
 楼主| 发表于 2016-11-11 17:24:53 | 显示全部楼层
回复 支持 反对

使用道具 举报

7

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2016-12-2
在线时间
35 小时
发表于 2017-2-23 10:44:25 | 显示全部楼层
顶上去,让更多人知道。我也遇到了和楼主一模一样的问题,参考帖子http://www.openedv.com/thread-64129-1-1.html 也搞好了。
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-6-30
在线时间
6 小时
发表于 2017-12-12 19:54:06 | 显示全部楼层
请教一下,我的跳转成功但是调度,程序一直在中断管理任务里循环,开始任务都不执行,请问遇见过嘛?
回复 支持 反对

使用道具 举报

33

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2014-1-24
在线时间
102 小时
发表于 2018-1-25 15:15:50 | 显示全部楼层
我的也是卡在了void start_task,请问是怎么搞好的啊?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 07:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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