硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3100|回复: 3
收起左侧

[FreeRTOS] emwin上增加FreeRTOS需注意systick的启动部分修改

[复制链接]

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2016-6-3 10:44:06 | 显示全部楼层 |阅读模式
在尝试使用二值信号量,
定义全局变量 SemaphoreHandle_t xSemaUSARTReceive=NULL;
什么地方都没有用它,结果程序直接进入硬件错误。如果删除这个定义,程序就完全正常。 不得其解?
定位到 GUI_Init(); 执行这一行就会硬件错误。。。

---------------------------------------------------------------------------
经过不懈的努力,找到原因了!

由于以前没有FreeRTOS的时候,emwin的启动需要配置 bsp_InitTimer(); 其中关键是启动了SysTick_Config(SystemCoreClock / 1000);

在移植了FreeRTOS后,systick的中断,设置等全部都被FreeRTOS主动接管了。如果再去设置systick就会造成问题。

最后,只用屏蔽 bsp_InitTimer();  这个函数即可。
回复

使用道具 举报

100

主题

275

回帖

575

积分

金牌会员

积分
575
发表于 2016-6-3 13:51:45 | 显示全部楼层
=NULL去掉 一样吗
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2016-6-3 14:31:15 | 显示全部楼层
经过不懈的努力,找到原因了!

由于以前没有FreeRTOS的时候,emwin的启动需要配置 bsp_InitTimer(); 其中关键是启动了SysTick_Config(SystemCoreClock / 1000);

在移植了FreeRTOS后,systick的中断,设置等全部都被FreeRTOS主动接管了。如果再去设置systick就会造成问题。

最后,只用屏蔽 bsp_InitTimer();  这个函数即可。
回复

使用道具 举报

100

主题

275

回帖

575

积分

金牌会员

积分
575
发表于 2016-6-3 18:28:17 | 显示全部楼层
那就不是 这句 SemaphoreHandle_t xSemaUSARTReceive=NULL;问题了,这个只是表象,只要用到FREERTOS的部分都会有问题
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 12:50 , Processed in 0.158313 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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