OpenEdv-开源电子网

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

freertos+stemwin移植问题

[复制链接]

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2017-6-20
在线时间
23 小时
发表于 2017-11-12 13:51:53 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 qgyhd1234 于 2017-11-12 13:53 编辑

工程是在EMWIN实验1 STemWin无操作系统移植的基础上改的,自己加了freertos进去,因为freertos用了滴答定时器,删除了原子的delay初始化函数,ms延时用hal_delay代替,us延时直接用nop循环代替,现在freertos系统和ewmin跑了起来,但是有2个问题
1手指在电容屏上不动,,显示的鼠标箭头会漂,裸机跑emwin时无此现象
2emwin跑到demo3.0/14  Antialiased text samole时会进入hardfault。
[mw_shl_code=c,true]int main(void){  
    Write_Through();                //Cahce强制透写
    MPU_Memory_Protection();        //保护相关存储区域
    Cache_Enable();                 //打开L1-Cache

                Stm32_Clock_Init(432,25,2,9);   //设置时钟,216Mhz
                HAL_Init();                                                                        //初始化HAL库
                uart_init(115200);                                //串口初始化
    KEY_Init();                     //按键初始化
    LED_Init();                     //初始化LED
    SDRAM_Init();                   //SDRAM初始化
                TFTLCD_Init();                  //初始化LCD
    TP_Init();                                                                //触摸屏初始化
    my_mem_init(SRAMIN);            //初始化内部内存池
    my_mem_init(SRAMEX);            //初始化外部SDRAM内存池
    my_mem_init(SRAMDTCM);          //初始化内部DTCM内存池
                __HAL_RCC_CRC_CLK_ENABLE();                        //使能CRC时钟
                WM_SetCreateFlags(WM_CF_MEMDEV);//开启STemWin存储设备
                GUI_Init();
    WM_MULTIBUF_Enable(1);                                        //开启STemWin多缓冲,RGB屏可能会用到
               
               
               
                osThreadDef(DefaultTask, DefaultStartTask, osPriorityNormal, 0, 128);
                defaultTaskHandle = osThreadCreate(osThread(DefaultTask), NULL);
               
                osKernelStart();
               
    while(1)
    {
                }
}





void ledTask(void const * argument)
{
        for(;;)
        {
                LED0(0);
                LED1(1);
                vTaskDelay(500);
                LED0(1);
                LED1(0);
                vTaskDelay(500);
       
        }
}


void touchTask(void const * argument)
{
        for(;;)
        {
                GUI_TOUCH_Exec();       
                vTaskDelay(10);
        }
}

void stemwin(void const * argument)
{
        for(;;)
        {
                GUIDEMO_Main();       
        }
}


void DefaultStartTask(void const * argument)
{

        osThreadDef(ledTask, ledTask, osPriorityLow, 0, 56);
        ledTaskHandle = osThreadCreate(osThread(ledTask), NULL);
       
        osThreadDef(touchTask, touchTask, osPriorityLow, 0, 128);
        touchTaskHandle = osThreadCreate(osThread(touchTask), NULL);
       
        osThreadDef(stemwin, stemwin, osPriorityNormal, 0, 512);
        stemwinTaskHandle = osThreadCreate(osThread(stemwin), NULL);
       
        vTaskDelete(defaultTaskHandle);
          
}[/mw_shl_code]


希望有大神能帮我看看哪儿出了问题
freertos STemWin.rar (5.1 MB, 下载次数: 416)

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-11-13 01:13:01 | 显示全部楼层
回复

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2017-6-20
在线时间
23 小时
 楼主| 发表于 2017-11-15 00:51:38 | 显示全部楼层

原子哥,卡在第三个演示的问题找到了,lib版本不对,我用你们提供的工程模版移植的,你们用的是3.0,我下的版本是3.2,改回3.0的lib库就好了,但是手指放在屏幕上,鼠标还是乱飘.....这个能给点思路吗?我也没碰你们给的触摸驱动啊,很奇怪裸机没问题,上了系统就乱飘
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-11-16 01:35:17 | 显示全部楼层
qgyhd1234 发表于 2017-11-15 00:51
原子哥,卡在第三个演示的问题找到了,lib版本不对,我用你们提供的工程模版移植的,你们用的是3.0,我下 ...

printf坐标数据,看看变化规律么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2017-6-20
在线时间
23 小时
 楼主| 发表于 2017-11-18 15:58:47 | 显示全部楼层
正点原子 发表于 2017-11-16 01:35
printf坐标数据,看看变化规律么?

我看了下数据,不是随机漂的,大部分点都是x坐标不变,只是y坐标在固定的留两个数值间跳动(x:257,Y:285<->385;),不同的点跳的坐标是不同的(x:275,y相差100,x:109,y相差25),少数是x也跳,而且跳动没啥规律,有时向左200,有时向右300,有时左右+-10
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-11-19 00:28:44 | 显示全部楼层
qgyhd1234 发表于 2017-11-18 15:58
我看了下数据,不是随机漂的,大部分点都是x坐标不变,只是y坐标在固定的留两个数值间跳动(x:257,Y:28 ...

可能你的触摸屏稳定性不行了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2017-6-20
在线时间
23 小时
 楼主| 发表于 2017-11-20 12:14:24 来自手机 | 显示全部楼层
正点原子 发表于 2017-11-19 00:28
可能你的触摸屏稳定性不行了

应该和触摸屏没关系啊,用你们的例程不飘,自己移植的freertos加emwin会漂
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-11-21 01:11:57 | 显示全部楼层
qgyhd1234 发表于 2017-11-20 12:14
应该和触摸屏没关系啊,用你们的例程不飘,自己移植的freertos加emwin会漂

对比代码吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 00:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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