<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > S5PV210(TQ210)學(xué)習(xí)筆記——LCD驅(qū)動(dòng)編寫(xiě)

          S5PV210(TQ210)學(xué)習(xí)筆記——LCD驅(qū)動(dòng)編寫(xiě)

          作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
          網(wǎng)上S5PV210內(nèi)核移植的文章不是很多,而描述2440和6410內(nèi)核移植的文章多數(shù)是講如何移植,而非手動(dòng)編寫(xiě),但是,韋東山老師的視頻中講述了如何從頭編寫(xiě)LCD驅(qū)動(dòng),當(dāng)然是以2440為例的,我看過(guò)視頻之后在TQ210平臺(tái)上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)成功,詳細(xì)的原理部分以我現(xiàn)在的水平還難以表達(dá)清楚。下載是我自己寫(xiě)的代碼,適用于TQ210的7寸電容屏。
          1. #include
          2. #include
          3. #include
          4. #include
          5. staticstructfb_info*lcd_info;
          6. unsignedlongpseudo_palette[16];
          7. unsignedlong*display_control;
          8. volatileunsignedlong*gpf0con;
          9. volatileunsignedlong*gpf1con;
          10. volatileunsignedlong*gpf2con;
          11. volatileunsignedlong*gpf3con;
          12. volatileunsignedlong*gpd0con;
          13. volatileunsignedlong*gpd0dat;
          14. volatileunsignedlong*vidcon0;
          15. volatileunsignedlong*vidcon1;
          16. volatileunsignedlong*vidtcon0;
          17. volatileunsignedlong*vidtcon1;
          18. volatileunsignedlong*vidtcon2;
          19. volatileunsignedlong*wincon0;
          20. volatileunsignedlong*vidosd0a;
          21. volatileunsignedlong*vidosd0b;
          22. volatileunsignedlong*vidosd0c;
          23. volatileunsignedlong*vidw00add0b0;
          24. volatileunsignedlong*vidw00add1b0;
          25. volatileunsignedlong*shodowcon;
          26. structclk*lcd_clk;
          27. staticinlineunsignedintchan_to_field(unsignedintchan,structfb_bitfield*bf)
          28. {
          29. chan&=0xffff;
          30. chan>>=16-bf->length;
          31. returnchan<offset;
          32. }
          33. staticintlcdfb_setcolreg(unsignedintregno,unsignedintred,
          34. unsignedintgreen,unsignedintblue,
          35. unsignedinttransp,structfb_info*info)
          36. {
          37. unsignedintval;
          38. if(regno>16)
          39. return1;
          40. /*用red,green,blue三原色構(gòu)造出val*/
          41. val=chan_to_field(red,&info->var.red);
          42. val|=chan_to_field(green,&info->var.green);
          43. val|=chan_to_field(blue,&info->var.blue);
          44. //((u32*)(info->pseudo_palette))[regno]=val;
          45. pseudo_palette[regno]=val;
          46. return0;
          47. }
          48. staticstructfb_opslcd_fbops={
          49. .owner=THIS_MODULE,
          50. .fb_setcolreg=lcdfb_setcolreg,
          51. .fb_fillrect=cfb_fillrect,
          52. .fb_copyarea=cfb_copyarea,
          53. .fb_imageblit=cfb_imageblit,
          54. };
          55. staticintlcd_init(void){
          56. intret;
          57. /*分配fb_info*/
          58. lcd_info=framebuffer_alloc(0,NULL);
          59. if(lcd_info==NULL){
          60. printk(KERN_ERR"allocframebufferfailed!");
          61. return-ENOMEM;
          62. }
          63. /*配置fb_info各成員*/
          64. /*fix*/
          65. strcpy(lcd_info->fix.id,"s5pv210_lcd");
          66. lcd_info->fix.smem_len=800*480*4;
          67. lcd_info->fix.type=FB_TYPE_PACKED_PIXELS;
          68. lcd_info->fix.visual=FB_VISUAL_TRUECOLOR;
          69. lcd_info->fix.line_length=800*4;
          70. /*var*/
          71. lcd_info->var.xres=800;
          72. lcd_info->var.yres=480;
          73. lcd_info->var.xres_virtual=800;
          74. lcd_info->var.yres_virtual=480;
          75. lcd_info->var.bits_per_pixel=32;
          76. lcd_info->var.red.offset=16;
          77. lcd_info->var.red.length=8;
          78. lcd_info->var.green.offset=8;
          79. lcd_info->var.green.length=8;
          80. lcd_info->var.blue.offset=0;
          81. lcd_info->var.blue.length=8;
          82. lcd_info->var.activate=FB_ACTIVATE_NOW;

          83. 上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: S5PV210LCD驅(qū)動(dòng)編

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();