你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32+LEIP+RTOS操作Flash进硬中断的问题-求教

[复制链接]
shenxiaolin_mai 提问时间:2018-12-8 22:48 /
前两天把官方的FreeRTOS+LWIP移植到紫的板子上,用起来没问题了,我在板子上添加程序的时候就除了问题了
我首先初始化Flash-上电之后就读取Flash中的数据,数据是保存的硬件版本信息和软件版本信息的,只是读取操作,此时还没有进入到RTOS的任务调度函数,其他任务还没有初始化,
之后就是开始初始化LWIP的任务,但是任务初始化完成之后,进入调度程序之后就开始进hardfult中断了,屏蔽掉flash 操作,整个系统没为题,屏蔽掉掉LWIP的任务,是正常的,两个子程序单独运行,都没有问题,合并起来就有问题了,具体的代码顺序如下:

  1. /*-------------------------------------------------------------------------------------
  2. ==  函数名    :
  3. ==  描  述    :
  4. ==  输入参数  :
  5. ==  返回值    :
  6. ==  备  注    :  
  7. ---------------------------------------------------------------------------------------
  8. */
  9. int main(void)
  10. {
  11.                         /* Configures the priority grouping: 4 bits pre-emption priority */
  12.                         //  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
  13.                         /* Init task */

  14.                         System_Flash_Process();//--<font color="#ff0000">Flash 操作的函数</font>
  15.                         DRV_IO_Init();//--输入输出以及端子与引脚的对应关系定义-错误引脚的定义以及对应关系--
  16. //                        xTaskCreate(Modbus_RS232_Tasks   ,(int8_t *)"Modbus_RS232_Tasks"       , 2048 , NULL, RS232_Task_PRIO   , NULL);//--
  17. //                        xTaskCreate(Modbus_RS485_1_Tasks ,(int8_t *)"Modbus_RS485_1_Tasks"     , 2048 , NULL, RS485_1_Task_PRIO , NULL);  //--
  18. //                        xTaskCreate(Modbus_RS485_2_Tasks ,(int8_t *)"Modbus_RS485_2_Tasks"     , 2048 , NULL, RS485_2_Task_PRIO , NULL);  //--
  19. //                        //--ADC --PWM ---DO --DI  --LED --        报警--
  20. //                        xTaskCreate(TaskIO          ,(int8_t *)"TaskIO"                        , 2048 , NULL, IO_TASK_PRIO      , NULL);  //-- IO  --
  21. //                        xTaskCreate(ControlLogic    ,(int8_t *)"ControlLogic"                  , 2048 , NULL, CTRL_TASK_PRIO    , NULL);  //-- IO  --
  22. //                        xTaskCreate(Flash_RTC_Tasks ,(int8_t *)"Flash_RTC_Tasks"               , 2048 , NULL, FLASH_TASK_PRIO   , NULL);  //-- LED --
  23.             //--<font color="#ff0000">下面是LWIP的官方例程的代码,---就是上文说到的LWIP任务</font>
  24.             xTaskCreate(Main_task       ,(int8_t *) "Main", configMINIMAL_STACK_SIZE * 2, NULL,MAIN_TASK_PRIO, NULL);

  25.                         /* Start scheduler */
  26.                         vTaskStartScheduler();

  27.   /* We should never get here as control is now taken by the scheduler */
  28.                 while(1)
  29.                 {
  30.                         IO_OutPutBitCTR(IO_Ch_22,IO_ON);//--控制器故障-输出控制--
  31.                 }
  32. }
复制代码

求各位大佬指导一下。

1_02.jpg

内网通截图20181209172249.png

评分

参与人数 1 ST金币 +20 收起 理由
STMCU + 20

查看全部评分

收藏 评论4 发布时间:2018-12-8 22:48

举报

4个回答
sylar.z 回答时间:2018-12-10 16:28:48
调试运行到屏蔽掉的代码处,可能是下载的目标文件跟源码不一致

评分

参与人数 1ST金币 +3 蝴蝶豆 +1 收起 理由
STMCU + 3 + 1

查看全部评分

shenxiaolin_mai 回答时间:2018-12-11 15:27:56
sylar.z 发表于 2018-12-10 16:28
调试运行到屏蔽掉的代码处,可能是下载的目标文件跟源码不一致

请问一下,目标文件跟代码不一致?这个能够给我解释一下么?
sylar.z 回答时间:2018-12-12 08:11:57
xiaoshen-372360 发表于 2018-12-11 15:27
请问一下,目标文件跟代码不一致?这个能够给我解释一下么?

是指你下载到板子上用来调试的HEX文件,不是你当前的源文件编译出来的。重新编译一下,再debug调试
shenxiaolin_mai 回答时间:2018-12-12 08:44:34
sylar.z 发表于 2018-12-12 08:11
是指你下载到板子上用来调试的HEX文件,不是你当前的源文件编译出来的。重新编译一下,再debug调试 ...

这个文件就是最新的文件,每次都是rebuld的,文件没有问题。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版