OpenEdv-开源电子网

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

关于UCOS和UCGUI,原子求解

[复制链接]

34

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
889
金钱
889
注册时间
2012-9-11
在线时间
153 小时
发表于 2013-7-16 00:27:21 | 显示全部楼层 |阅读模式
第一:移植了ucos,发现一些需要时序严格的任务,要求在延时时间内做出响应的任务,在被高优先级中断后,响应数据因为超过响应时间而得不到正确的数据,这种应该采用什么方式才能非常好的解决呢?
第二:ucgui内的lcd驱动程序是否和原子例程里的LCD驱动程序冲突呢?移植的时候是否只能二选一?
http://url.cn/PqU0jG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
发表于 2013-7-16 22:47:34 | 显示全部楼层
第一:把需要时序严格的任务放在临界区。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-16 23:04:26 | 显示全部楼层
1,如1楼.放临界区吧.
2,ucgui基本只用到了我们的LCD初始化函数,再就是画点,画线等几个函数,其他的都不需要了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

34

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
889
金钱
889
注册时间
2012-9-11
在线时间
153 小时
 楼主| 发表于 2013-7-17 09:44:10 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
第一:把任务放临界区,是否是这样:
//LED1任务
void led1_task(void *pdata)
{  
while(1)
{
          OS_ENTER_CRITICAL();//(进入临界区)
LED0=0;
delay_ms(80);
LED0=1;
delay_ms(920);
        OS_EXIT_CRITICAL();//(退出临界区)
};//这里不明白原子为什么要加个;号,而且其他while的地方也出现过
}
亦或者用信号量是否可以解决在关键时序区不释放CPU?因为把整个任务放进临界区会严重影响实时性。

第二:UCGUI正在移植中,发现直接烧写原子MINI板的例程,显示屏左边会空出两个字节的宽度不显示,原子例程的主控是9320,而我板子用的是9325,初步判断是这个原因导致。
http://url.cn/PqU0jG
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-17 10:06:15 | 显示全部楼层
1,临界区就不要用delay了,还delay_ms...那不等于OS被你卡死很久不能动,实时性怎么保证?临界区代码的原则:越短越好.
2,可能你初始化的问题吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

34

主题

149

帖子

0

精华

高级会员

Rank: 4

积分
889
金钱
889
注册时间
2012-9-11
在线时间
153 小时
 楼主| 发表于 2013-7-17 10:16:47 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
第一:对于外设在延时xxus或者xxms的时候做出响应,如果错过就初始化失败,这种的话,我恐怕还是只有把延时加到临界区
第二:UCGUI我在找找原因,现在遇到的麻烦是UCOS+UCGUI,创建几个任务后,flash和ram统统报警,这里给原子提个建议,新版的mini开发板可否使用STM32F103RFT6,FLASH 768k,ram  96k,价格单买在22左右,成本增加不多,还送一个DAC模块,可以增加DAC的实验
http://url.cn/PqU0jG
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 01:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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