jeff 发表于 2011-8-21 17:59:33

DE2 uCGUI


簡易的ucgui porting,無os,純測式可整合自定的framebuffer
簡易說明:http://www.cnblogs.com/jeffblog/archive/2011/08/21/2147811.html
程式碼:http://files.cnblogs.com/jeffblog/NIOS_uCGUI.zip

yqzhang 发表于 2011-8-22 10:18:58

:victory:

tingtang 发表于 2011-8-22 11:48:31

厉害啊!!!!

jeff 发表于 2011-8-28 23:54:02


更新使用ucos2/支持usb mouse操作
http://www.cnblogs.com/jeffblog/archive/2011/08/28/2156400.html

kay54068 发表于 2011-9-16 20:34:32

請問您ucgui lib 是修改哪個地方自定framebuffer???

kay54068 发表于 2011-10-5 22:42:34

回复 5# kay54068


請問您ucgui lib 是修改哪個地方自定framebuffer???

jeff 发表于 2011-10-12 22:29:52

回复 6# kay54068

設定config配合所使用的lcd,這裡lcd使用的解析度是320x240 32bpp (XRGB888)
修改\Config\LCDConf.h
#ifndef LCDCONF_H
#define LCDCONF_H
/*********************************************************************
*
*                   General configuration of LCD
*
**********************************************************************
*/
#undef WIN32
#define LCD_XSIZE      (320)   /* X-resolution of LCD, Logical coor. */
#define LCD_YSIZE      (240)   /* Y-resolution of LCD, Logical coor. */

#define LCD_BITSPERPIXEL (32)
#define LCD_FIXEDPALETTE 888
#define LCD_SWAP_RB         1
#define LCD_CONTROLLER 3200

#define LCD_VRAM_ADR   0x01000000
#define LCD_ENDIAN_BIG         0
/*********************************************************************
*
*                   Full bus configuration
*
**********************************************************************
*/

extern void UCGUI_IOWR(unsigned int base,unsigned int offset,unsigned int value);
extern unsigned int UCGUI_IORD(unsigned int base,unsigned int offset);

#define   LCD_READ_MEM(Off)      UCGUI_IORD(LCD_VRAM_ADR,Off)//(*((U32 *)LCD_VRAM_ADR + ((U32)Off)))
#define   LCD_WRITE_MEM(Off, Data) UCGUI_IOWR(LCD_VRAM_ADR,Off,Data)//*((U32 *)LCD_VRAM_ADR + ((U32)Off)) = Data

#endif /* LCDCONF_H */

這裡指定LCD_CONTROLLER 3200會啟用\LCDDriver\LCDLin32.c ( #if (LCD_CONTROLLER == 3200) )
32bpp的部分ucgui3.98好像還沒有支持
實作在這裡找到的http://electronix.ru/forum/index.php?act=Attach&type=post&id=53037

LCD_VRAM_ADR是指framebuffer的位址,因為我是拿16bit sram來擴展使用,所以就強制sram規畫的位址上
如果是在sdram alloc來的,就把LCD_VRAM_ADR改成變數然後加一funcion讓alloc來的framebuffer的位址可以set進來
接著指定好framebuffer後就是實作讀寫的函式了
讀: LCD_READ_MEM = UCGUI_IORD
寫: LCD_WRITE_MEM = UCGUI_IOWR
這裡的UCGUI_IORD/UCGUI_IOWR就只是一個wapper轉到IORD/IOWR,直接當記憶體操作好像會有cache的問題
其它部分就不用什麼修改了, GUI_X_uCOS.c/GUI_X.c 不要跟library綁在一起應該比較好

kay54068 发表于 2011-10-22 15:28:06

受益良多~

zhujianwu566 发表于 2011-11-6 12:15:33

楼主你好,我用的VGA显示,ucgui移植好了,也可以成功显示,但是PS/2 IP核用的是大学计划里面的,一直无法识别鼠标,刚刚下载了usb接口的鼠标,好像也是识别不了,用的一般光电鼠标,请问对鼠标有什么要求么?

tvqpq 发表于 2012-3-3 04:10:44

我来看看!谢谢











http://www.discuz.net/static/image/common/sigline.gif
微博背景 http://www.weibogg.com/ ; 微博论坛 http://www.weibogg.com/bbs/
页: [1]
查看完整版本: DE2 uCGUI