硬汉嵌入式论坛

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

[FreeRTOS] 在UCOS III 可以用的IMAGE_SetJPEG, 在FREERTOS沒效果??

[复制链接]

18

主题

216

回帖

270

积分

高级会员

积分
270
发表于 2018-8-12 19:42:57 | 显示全部楼层 |阅读模式
HI 版主您好


之前有和您請教STEMWIN和中斷的問題.
現在是想把原本在UCOS III + STEMWIN 建好的GUI搬到FREERTOS使用

V5-347-FreeRTOS實驗_FreeRTOS+STemWin+FatFS綜合

以這個範例做修改.
把原本的把原本在UCOS III + STEMWIN 建好的GUI搬到FREERTOS使用
所有控件都沒問題,如常顯示.
唯獨背景的圖片消失了????背景變全白的.

是不是在FreeRTOS不能用IMAGE_SetJPEG的啊??
因為在模擬器也沒有問題,就覺得奇怪.


回复

使用道具 举报

36

主题

1445

回帖

1553

积分

至尊会员

积分
1553
发表于 2018-8-12 22:29:29 | 显示全部楼层
繁体字美些吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2018-8-13 00:13:46 | 显示全部楼层
sanit 发表于 2018-8-12 22:29
繁体字美些吗?

楼主是台湾地区的,现在港澳台都还用的繁体
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2018-8-13 00:14:28 | 显示全部楼层
楼主方便的话,还像上次一样,直接上传一个例子即可,我帮你看看。
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2018-8-13 08:51:48 | 显示全部楼层
eric2013 发表于 2018-8-13 00:13
楼主是台湾地区的,现在港澳台都还用的繁体

是的,我在台灣
回复

使用道具 举报

36

主题

1445

回帖

1553

积分

至尊会员

积分
1553
发表于 2018-8-13 11:57:37 | 显示全部楼层

原来如此,强大的安富莱都漂洋过海去台湾了
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2018-8-13 22:17:19 | 显示全部楼层
本帖最后由 inceboy 于 2018-8-13 23:31 编辑

HI 版主

這個:
https://drive.google.com/file/d/ ... HH/view?usp=sharing
控件大致上一樣
只是沒背景.

這個就真的是在V5版跑也沒背景了.

SANIT : 是啊, 在淘寶看到, 教學的範例還不錯就買回來試試
還不錯, 沒教程只是買塊磚回來餵灰塵.
DSC_0146.JPG
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2018-8-14 00:37:58 | 显示全部楼层
1、这个要使用外部SRAM做emWin动态内存才可以使用,你仅需在GUIConf.C文件里面把这个条件编译修改为1即可:
QQ截图20180814003835.png

2、另外你的程序里面,使能了外部SRAM做emWin动态内存后,开这个会进入硬件异常,需要你将其注释掉,然后排查下你程序的问题。
QQ截图20180814004249.png

3、另外程序里面为什么要加大emWin动态内存呢,是因为下面这个


4、最后贴一下修改后的显示效果,打了马赛克
QQ截图20180814004728.png


回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2018-8-14 12:06:04 | 显示全部楼层
感謝版主支援 !!! 學到東西了.
回家再試一下,謝謝.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2018-8-14 12:18:02 | 显示全部楼层
inceboy 发表于 2018-8-14 12:06
感謝版主支援 !!! 學到東西了.
回家再試一下,謝謝.



后续有什么问题了,随时交流。
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2018-8-14 22:24:20 | 显示全部楼层
結果發現是這三個造成硬件異常?? !!!
                        hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5);
                        sprintf(buf, "%d", rand()%100);
                        TEXT_SetText(hItem, buf);

                        /* Aa¢DU¡¼a¢D¡¼ID_TEXT_4ao¢XEoA¡¼A¡¼U */
                        hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4);
                        sprintf(buf, "%d", rand()%100);
                        TEXT_SetText(hItem, buf);

                        /* Aa¢DU¡¼a¢D¡¼ID_TEXT_3ao¢XEoA¡¼A¡¼U */
                        hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
                        sprintf(buf, "%d", rand()%100);
                        TEXT_SetText(hItem, buf);
就是快速更新紅綠黃三個二位數數字造成硬件錯誤, 拿掉就好了 ??!!
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2018-8-14 22:47:07 | 显示全部楼层
本帖最后由 inceboy 于 2018-8-14 23:29 编辑

結果最後是更新字元這個行為造成硬件錯誤???!!!

TEXT_SetText(hItem, buf);

在定時器:
"    case WM_TIMER:
        if (WM_GetTimerId(pMsg->Data.v) == ID_TimerGraph) {
.....................

"


裡面不能TEXT_SetText(hItem, buf);???
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2018-8-15 01:28:18 | 显示全部楼层
inceboy 发表于 2018-8-14 22:47
結果最後是更新字元這個行為造成硬件錯誤???!!!

TEXT_SetText(hItem, buf);

先加大buf,修改为buf[100]看看是否有问题。
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2018-8-15 22:44:12 | 显示全部楼层
本帖最后由 inceboy 于 2018-8-15 23:04 编辑

好像沒用,從 buf[10] 修正到 buf[100]
觸發TEXT_SetText還是一樣Enter HardFault_Handler, System Halt.,

另外本來規劃這個還有從UART輸入字串來更新
螢幕上的數字的功能.一樣會觸發TEXT_SetText
然後一跑TEXT_SetText也就

Enter HardFault_Handler, System Halt了

內存也加大了:
    xTaskCreate(  vTaskGUI,             /* ¥ô°È¨ç¼Æ  */
                  "vTaskGUI",           /* ¥ô°È¦W    */
                  4096,                 /* ¥ô°È´Ì¤j¤p¡A³æ¦ìword¡A¤]´N¬O4¦r¸` */
                  NULL,                 /* ¥ô°È°Ñ¼Æ  */
                  1,                    /* ¥ô°ÈÀu¥ý¯Å*/
                  NULL );               /* ¥ô°È¥y¬`  */
4096應該夠了吧??



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2018-8-16 02:23:52 | 显示全部楼层
inceboy 发表于 2018-8-15 22:44
好像沒用,從 buf[10] 修正到 buf[100]
觸發TEXT_SetText還是一樣Enter HardFault_Handler, System Halt.,
...

不行的话,你把你的程序的emWin应用部分简化下,我帮你测试修改下。
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2018-8-16 09:47:31 | 显示全部楼层
本帖最后由 inceboy 于 2018-8-16 12:40 编辑

HI 版主

.....emWin应用部分简化的意思是??

目前有試到把TASKGUI的內存改到2048
從UART接收DATA更新LCD數字好像正常了,但是試沒幾次一樣進到硬件錯誤.


另外目前在UCOSIII + STEMWIN的例子己經可以改到
1:顯示背景圖
2:三個數字快速更新
3:UART接收DATA更新LCD數字
4:CC1101接收DATA更新LCD數字
只是不知道FREERTOS更新畫面有硬件錯誤.
是FREERTOS在STEMWIN的晝面操作使用上有技巧嗎??
因為昨晚有找到一篇也是一樣的問題:
http://www.openedv.com/thread-41051-1-1.html
作者嘗試在
FREERTO+STEMWIN時也是提到
一想要去更新晝面的函數時馬上進硬件錯誤???
"我在板子上同时使用emwin和freertos出现了一点问题

当我在一个任务里使用了任何emwin函数(像WM_Exec(),GUI_TOUCH_Exec() or GUI_DispStringAt()) 的时候,这个任务放进系统会造成硬件错误,哪怕另一个任务是一个空任务"
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2018-8-17 11:36:38 | 显示全部楼层
inceboy 发表于 2018-8-16 09:47
HI 版主

.....emWin应用部分简化的意思是??

简化下的意思就是,做一个最简单的测试Demo,能够说明问题即可,其它无关的全部删掉,这样我帮你测试方便些。
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
 楼主| 发表于 2018-8-17 23:23:30 | 显示全部楼层
呃版主........莫名其妙的可以了.

把UCOS III 的emWin/emWinTask下的檔案
整個複製貼上到FREERTOS的emWin/emWinTask下面

再打開外部SRAM...............
可以了 ??
一切正常.和UCSO III的效果一樣了.

謝謝版主支援.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2018-8-18 01:32:01 | 显示全部楼层
inceboy 发表于 2018-8-17 23:23
呃版主........莫名其妙的可以了.

把UCOS III 的emWin/emWinTask下的檔案

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 15:39 , Processed in 0.319669 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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