OpenEdv-开源电子网

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

正点原子的实验56 UCOSII实验1-1-任务调度 ,增加flash冲突

[复制链接]

5

主题

36

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-21
在线时间
6 小时
发表于 2021-8-17 14:23:31 | 显示全部楼层 |阅读模式
20金钱
如题单独使用使用正点原子的ucos 例程 实验56 UCOSII实验1-1-任务调度 ,和实验34 FLASH模拟EEPROM实验。都没有问题,但是如果在实验56上移植实验34的flash读写文件。机会出现问题。想象,只有在创建任务之前写flash才正常,如果创建任务以后 flash写失败。#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "stmflash.h"
#include "includes.h"

//ALIENTEK ì½Ë÷ÕßSTM32F407¿a·¢°å êμÑé56
//UCOSIIêμÑé1-èÎÎñμ÷¶è -¿aoˉêy°æ±¾
//¼¼êõÖ§3Ö£owww.openedv.com
//ìÔ±|μêÆì£ohttp://eboard.taobao.com  
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾  
//×÷ÕߣoÕyμãÔ-×ó @ALIENTEK


/////////////////////////UCOSIIèÎÎñéèÖÃ///////////////////////////////////
//START èÎÎñ
//éèÖÃèÎÎñóÅÏ輶
#define START_TASK_PRIO                              10 //¿aê¼èÎÎñμÄóÅÏ輶éèÖÃÎa×îμí
//éèÖÃèÎÎñ¶ÑÕ»′óD¡
#define START_STK_SIZE                                  64
//èÎÎñ¶ÑÕ»       
OS_STK START_TASK_STK[START_STK_SIZE];
//èÎÎñoˉêy
void start_task(void *pdata);       
                          
//LED0èÎÎñ
//éèÖÃèÎÎñóÅÏ輶
#define LED0_TASK_PRIO                               7
//éèÖÃèÎÎñ¶ÑÕ»′óD¡
#define LED0_STK_SIZE                                      64
//èÎÎñ¶ÑÕ»       
OS_STK LED0_TASK_STK[LED0_STK_SIZE];
//èÎÎñoˉêy
void led0_task(void *pdata);


//LED1èÎÎñ
//éèÖÃèÎÎñóÅÏ輶
#define LED1_TASK_PRIO                               6
//éèÖÃèÎÎñ¶ÑÕ»′óD¡
#define LED1_STK_SIZE                                          64
//èÎÎñ¶ÑÕ»
OS_STK LED1_TASK_STK[LED1_STK_SIZE];
//èÎÎñoˉêy
void led1_task(void *pdata);
u32 te = 87432;

u8 id=  1;
int main(void)
{

        delay_init(168);                  //3õê¼»ˉÑóê±oˉêy
        LED_Init();                        //3õê¼»ˉLED¶Ë¿ú
        STMFLASH_Write(Temp_adress,&te,1);//正确
        OSInit();   
        OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//′′½¨Æeê¼èÎÎñ
        OSStart();       
}

//¿aê¼èÎÎñ
void start_task(void *pdata)
{
    OS_CPU_SR cpu_sr=0;
        pdata = pdata;

          OS_ENTER_CRITICAL();                        //½øèëáù½çÇø(ÎT·¨±»ÖD¶Ï′ò¶Ï)   
        OSTaskCreate(led0_task,(void *)0,(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO);                                                  
        OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);                                           
        OSTaskSuspend(START_TASK_PRIO);        //1òÆeÆeê¼èÎÎñ.
        OS_EXIT_CRITICAL();                                //íË3öáù½çÇø(¿éòÔ±»ÖD¶Ï′ò¶Ï)
}

//LED0èÎÎñ
void led0_task(void *pdata)
{                
        while(1)
        {
                LED0=0;
                delay_ms(80);
                if(id == 1)
                {
                        STMFLASH_Write(Temp_adress,&te,1);//失败
                        id = 0;
                }
                LED0=1;
                delay_ms(920);
        };
}




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

使用道具 举报

5

主题

36

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-21
在线时间
6 小时
 楼主| 发表于 2021-8-17 14:50:58 | 显示全部楼层
之前使用 STM32F103系列 ucos和flash没有这个问题,刚使用F4系列才发现这个问题。不知道是什么原因
回复

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2021-8-17 15:04:19 | 显示全部楼层
帮顶   
回复

使用道具 举报

7

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2014-11-20
在线时间
36 小时
发表于 2021-9-15 13:30:09 | 显示全部楼层
同样遇到了读flash的问题,暂时没解决!帮顶!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 23:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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