OpenEdv-开源电子网

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

FreeRTOS使用问题

[复制链接]

1

主题

6

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2017-5-17
在线时间
3 小时
发表于 2017-5-17 14:05:07 | 显示全部楼层 |阅读模式
1金钱
本人先后用了7.0.1跟8.2.3两个版本的rtos,但是都有这样的问题
用软件烧写进去开发板,没有问题。
但是给开发板断电,再开的话,发觉main函数前面的语句如printf语句都不能打印信息,
是何缘故,求助,万分感激!

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

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2017-5-17
在线时间
3 小时
 楼主| 发表于 2017-5-17 14:06:07 | 显示全部楼层
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2017-5-17 14:41:57 | 显示全部楼层
贴代码看看
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2017-5-17
在线时间
3 小时
 楼主| 发表于 2017-5-17 14:58:09 | 显示全部楼层

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "FreeRTOS.h"
#include "task.h"
/************************************************
ALIENTEK 精英STM32F103开发板 FreeRTOS实验2-1
FreeRTOS移植实验-库函数版本
技术支持:www.openedv.com
淘宝店铺:http://eboard.taobao.com
关注微信公众平台微信号:"正点原子",免费获取STM32资料。
广州市星翼电子科技有限公司  
作者:正点原子 @ALIENTEK
************************************************/

//任务优先级
#define START_TASK_PRIO                1
//任务堆栈大小       
#define START_STK_SIZE                 128  
//任务句柄
TaskHandle_t StartTask_Handler;
//任务函数
void start_task(void *pvParameters);

//任务优先级
#define LED0_TASK_PRIO                2
//任务堆栈大小       
#define LED0_STK_SIZE                 50  
//任务句柄
TaskHandle_t LED0Task_Handler;
//任务函数
void led0_task(void *pvParameters);

//任务优先级
#define LED1_TASK_PRIO                3
//任务堆栈大小       
#define LED1_STK_SIZE                 50  
//任务句柄
TaskHandle_t LED1Task_Handler;
//任务函数
void led1_task(void *pvParameters);

int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4         
        delay_init();                                            //延时函数初始化          
        uart_init(115200);                                        //初始化串口
        LED_Init();                                                          //初始化LED
        printf("main_start\n");
         
        //创建开始任务
    xTaskCreate((TaskFunction_t )start_task,            //任务函数
                (const char*    )"start_task",          //任务名称
                (uint16_t       )START_STK_SIZE,        //任务堆栈大小
                (void*          )NULL,                  //传递给任务函数的参数
                (UBaseType_t    )START_TASK_PRIO,       //任务优先级
                (TaskHandle_t*  )&StartTask_Handler);   //任务句柄              
    vTaskStartScheduler();          //开启任务调度
}

//开始任务任务函数
void start_task(void *pvParameters)
{
    taskENTER_CRITICAL();           //进入临界区
    //创建LED0任务
    xTaskCreate((TaskFunction_t )led0_task,            
                (const char*    )"led0_task",          
                (uint16_t       )LED0_STK_SIZE,
                (void*          )NULL,                               
                (UBaseType_t    )LED0_TASK_PRIO,       
                (TaskHandle_t*  )&LED0Task_Handler);   
    //创建LED1任务
    xTaskCreate((TaskFunction_t )led1_task,     
                (const char*    )"led1_task",   
                (uint16_t       )LED1_STK_SIZE,
                (void*          )NULL,
                (UBaseType_t    )LED1_TASK_PRIO,
                (TaskHandle_t*  )&LED1Task_Handler);         
    vTaskDelete(StartTask_Handler); //删除开始任务
    taskEXIT_CRITICAL();            //退出临界区
}

//LED0任务函数
void led0_task(void *pvParameters)
{
        static int count=0;
    while(1)
    {
        LED0=~LED0;
                                printf("led0:count=%d\n",count++);
        vTaskDelay(500);
    }
}   

//LED1任务函数
void led1_task(void *pvParameters)
{
    while(1)
    {
        LED1=0;
        vTaskDelay(200);
        LED1=1;
        vTaskDelay(800);
    }
}
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2017-5-17
在线时间
3 小时
 楼主| 发表于 2017-5-17 14:59:39 | 显示全部楼层
烧写时,能打印出main_start字样。
断电上电,怎不能,仅仅能打印count=xxx数。
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
11922
金钱
11922
注册时间
2015-11-5
在线时间
2086 小时
发表于 2017-5-17 16:52:24 | 显示全部楼层
jeshuazeng 发表于 2017-5-17 14:59
烧写时,能打印出main_start字样。
断电上电,怎不能,仅仅能打印count=xxx数。

你用的是原子的代码,请问下@zuozhongkai
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-5-17 16:58:05 | 显示全部楼层
FreeRTOS 发表于 2017-5-17 16:52
你用的是原子的代码,请问下@zuozhongkai

测过我们的例程,不会有这种事情发生。
开往春天的手扶拖拉机
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2017-5-17
在线时间
3 小时
 楼主| 发表于 2017-5-17 17:11:35 | 显示全部楼层
zuozhongkai 发表于 2017-5-17 16:58
测过我们的例程,不会有这种事情发生。

我用的就是你们的例程呀。上面有贴出代码。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-5-17 18:09:02 | 显示全部楼层
jeshuazeng 发表于 2017-5-17 17:11
我用的就是你们的例程呀。上面有贴出代码。

直接下载我们的FreeRTOS例程?一点都没有改,至少我们例程的FreeRTOS用的V9.0.0版本的
开往春天的手扶拖拉机
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2017-5-17
在线时间
3 小时
 楼主| 发表于 2017-5-18 17:27:51 | 显示全部楼层
是用v9.0.0的,
Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,680
这个错误是什么回事呀?老遇上问题呀
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 22:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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