日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tiny4412 裸机程序 九、串口排查驱动原因及字符图片显示【转】

發布時間:2023/12/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tiny4412 裸机程序 九、串口排查驱动原因及字符图片显示【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文轉載自:http://blog.csdn.net/eshing/article/details/37410571

目錄(?)[+]

一、實驗原理

大家可能會有疑問,不是在BL2目錄中的mem_init_tiny4412.S實現了串口初始化了,且也有串口輸出函數,要不然怎么串口調試助手上怎么會有打印信息呢,這里為什么還要重新初始化?其實我覺得也可以不用重新初始化,但至少也要實現Printf()這個標準函數里要調用的串口輸出函數吧,因為初始化工作在時鐘沒有改變的情況下,可以只初始化一次,但是到LCD初始化這一步時,CPU已經重定位到DRAM中執行了,前面在mem_init_tiny4412.S實現的函數uart_asm_putc和uart_asm_putx函數現在代碼應定位不到了吧,所以應無法調用了,所以我覺得有必要重新初始化,至少實現串口輸出函數。

代碼實現方式還是從U-BOOT中去COPY修改的,同時也參考了《Linux平臺下Mini210S裸機程序開發指南》的第24章代碼方式。這一章我不會詳細的去說明代碼中串口如何實現等等,我只想找出LCD用另一種代碼風格沒能初始化成功的原因?代碼的實現過程,相信大家有了前面幾章的說明,自己應想明白吧。

二、程序說明

1、UART.C

代碼增加了uart.h和uart.c以及從linux系統中提取出來的一些相關文件,雖然我這里重新實現了串口初始化函數,但我也沒有在user_bin.bin程序的main執行階段沒有調用此函數進行初始化串口,而是只會通過printf()函數調用putc()輸出函數和輸入所用getc()函數。所以這也驗證了前面的設想,其實一開始串口已初始化好了,我們沒有改變時鐘什么的,沒必要再來初始化一次了。程序實現方式簡章不做過多說明。

2、LCD.C

在lcd.c中我copy了《Linux平臺下Mini210S裸機程序開發指南》第24章提供的代碼中繪圖和繪制字符的函數,并對其進行了必要修改,還有從Linux提取了三個字庫文件,分別是font_8x16.h、font_10x18.h和font_sun12x22.h,這三個文件分別用來提供不同大小的字模,程序中可以通過LCD.h中的宏定義來選擇一種字模來做為LCD中輸出文字,LCD輸出字的方法也是很古老的,就是移位比較字模數據中那一bit是1,即在相應位置描點。但這種方法實現字符輸出,在測試過程中我發現,繪制文字一直不是很清晰,三個字庫都如此,程序上可能存在什么問題吧,需要好好排查。

Lcd.c中的lcd_draw_bmp()繪圖函數我進行了修改,讓他的更加靈活一點,它可以繪制由網上比較流行的圖片轉LCD數據軟件“img2lcd”轉換出來的,帶有8字節圖片信息頭的字符數組文件。此函數會自動從8字節的信息頭中提取圖像高度和寬度信息,然后進行繪圖。由于我現在提供是800*480的24bit的圖片,現在編譯生成的user_bin.bin文件會比較大了,現在出來的文件大小已經比較大了,大約有1149K了,所以我們有必要修改一下BL2中mmc_relocate.c,要將其復制的扇區大小改大一些,一個扇區512字節,大家看著自己程序修改吧,但也不能太大了,因為我不清楚FriendlyARM為我們提供的SD-Flasher.exe在格式分區時,第一分區分配大小到底有多大,我不是很確定,我用一個分區工具查看時,發現在大小有150M左右,如下圖9-1所示,大家的程序還是控制在5M大小內比較保險吧。

圖9-1、SD卡分區示意圖

我修改復制的大小為2048K,所以扇區數為4096,代碼如下所示:

SDMMC_ReadBlocks(49,4096,0x43e00000);

3、main.c

???????? main.c程序也做了相關修改,主要是復制了《Linux平臺下Mini210S裸機程序開發指南》第24章所提供的代碼,程序實現通過輸入不同數字繪出不同的圖形,同時屏幕上會顯示字符。程序實現也很簡單,這里不過多說明。

三、完整的燒寫過程

已將SD卡插入電腦,假設linux識別了SD卡,其識別號為sdb。執行下面命令:

# chmod 777 –R 8_sdram_LCD_Char

# cd 8_sdram_LCD_Char

# make

# ./ fast_fuse /dev/sdb

由于這個程序user_bin.bin程序比較大了,燒寫的時間會長一些吧,我的一般要兩三分鐘了,大家耐心等待,燒寫過程中,屏幕沒有反應,不是燒寫的sh死了。

四、上電實驗

將sd卡插入Tiny4412中,選擇sd卡啟動,和電腦能過串口0連接好,打開一個串口調試助手,然后上電,可以看到以下現象:

串口助手中不但顯示了前面從內存中讀出的信息,同時也輸入了LCD初始化過程中增加的打印信息,我截取了部分輸出如下圖9-2所示,從圖上可以看出VIDTCON2寄存器的初始化值兩種風格設置數值果然不同,這就是問題的所在。

圖9-2、LCD初始化輸出信息

查看代碼,原來是代碼如下,原來LINEVAL<< 11寫借了,EXYNOS_VIDTCON2_LINEVAL(x)已經將值左移11位了,這里我又左移了11位,導致初始化出錯。

//VIDTCON2 = ( EXYNOS_VIDTCON2_LINEVAL(LINEVAL<<11) |
EXYNOS_VIDTCON2_HOZVAL(HOZVAL));

將其修改為:

//VIDTCON2 = ( EXYNOS_VIDTCON2_LINEVAL(LINEVAL)|
EXYNOS_VIDTCON2_HOZVAL(HOZVAL));

重新編譯上電實驗,從下圖9-3中截取的部分可以看出現在初值一樣了。

圖9-3、LCD初始化輸出信息

最后,我將這一章的代碼修改為第二種風格的書寫方式提供給大家,我自己也編譯上電驗證了,現在程序也能正常工作了。

這一步完成后,即可以驗證了main程序了,如下圖9-4所示,是發送字符5后繪制一幅圖片的效果圖。

圖9-4、Tiny4412實現效果圖

So Sexy ??? Oh haa??

第十章、尾聲

一開始我說過,我一開始一直想在U-BOOT中移植成功LCD功能,但始終無法實現,才想著先用裸機程序來實驗,驗證LCD程序能正常工作了,再去調試U-BOOT,所以才會從網上才找到《Linux平臺下Mini210S裸機程序開發指南》的文檔,也才有這一篇裸機程序學習記錄文檔,到此,我的目的已經達到了,后面按Mini210S的文檔程序都是通過Minitools來燒寫的,但我們的Tiny4412不行,我也不去深入實現其他的裸機代碼了,但文檔中提供重定位到DRAM中運行的方法,同樣可以實現一些程序稍大的裸機程序,有興趣的朋友可以參考《Linux平臺下Mini210S裸機程序開發指南》文檔,實現完所有的功能,為廣大學習朋友造福,我在此已花支了一段時間了,我學這個是有目的,不想花過多時間深入其他程序,下一步轉回到U-BOOT的調試中去。謝謝!

備注:說明一下,后面兩章的代碼已上傳到我的資源里,我要了兩個下載分,不好意思,我的資源分太少了,我得賺點,我相信我的程序是絕對能運行的,覺得值就去下載。

資源地址:

http://download.csdn.NET/detail/eshing/7598297

http://download.csdn.net/detail/eshing/7601447

總結

以上是生活随笔為你收集整理的tiny4412 裸机程序 九、串口排查驱动原因及字符图片显示【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www.九九热| 久久综合婷婷国产二区高清 | 91桃色在线观看 | 日韩中文字幕网址 | 农村妇女愉情三级 | 久久黄页| 免费观看一区二区三区 | 日韩精品一区二区三区在线视频 | 日韩激情在线播放 | 国产调教av | 久久国产片 | 亚洲69 | 长篇高h肉爽文丝袜 | 国产精品视频一区二区三 | 欧美日韩国产在线一区 | たちの熟人妻av一区二区 | 日韩一级免费毛片 | 免费美女视频网站 | 免费看国产一级片 | 伊人22综合 | 青娱乐在线播放 | 欧美午夜精品一区二区三区 | 日韩不卡在线播放 | 精品+无码+在线观看 | 久久福利小视频 | 国产操操操 | 九热视频在线观看 | 国产欧美一区二区精品久久久 | 污色视频 | 高清成人免费视频 | 爱操综合 | 一级片视频免费观看 | 国产精品1区2区 | 日韩激情国产 | 久久综合导航 | 久久情趣视频 | 91丝袜呻吟高潮美腿白嫩在线观看 | 成人免费高清在线观看 | 国产乱淫av麻豆国产免费 | 肉大捧一进一出免费视频 | 精品一二三四区 | av在线播放中文字幕 | 在线精品亚洲欧美日韩国产 | 久久久久久久久艹 | 成人久久久精品国产乱码一区二区 | 狂野欧美性猛交xxxx | 亚洲国产无码久久 | 国产色宗合 | 亚洲欧美日韩图片 | 男人的天堂手机在线 | 国产人妻一区二区三区四区五区六 | 少妇被爽到高潮动态图 | 95视频在线观看 | 在线看中文字幕 | 色综合自拍| 亚洲黄色片网站 | 性色AV无码久久一区二区三 | 日本在线视频二区 | 黄色精品视频在线观看 | 亚洲国产网址 | 亚洲春色另类 | 成人免费网站黄 | 高清一二三区 | 日韩av在线天堂 | 91精品一区 | 欧美偷拍一区二区 | 911香蕉视频 | 日韩成人av电影 | 日本少妇18p | 国产乱淫av一区二区三区 | 97精品人妻一区二区 | 一区二区不卡在线 | 国产不卡视频 | 91偷拍一区二区三区精品 | 中文字幕在线播放av | 免费看日批 | wwww欧美| 国产欧美精品aaaaaa片 | 中文字幕导航 | 久久综合亚洲色hezyo国产 | 欧美另类xxxxx | 欧美日韩国产一区在线 | 97香蕉碰碰人妻国产欧美 | 日本女优一区 | 看全黄大色黄大片美女人 | 亚洲一二三不卡 | 亚洲最新av网址 | 国产毛片网 | 99热视| 99精品人妻无码专区在线视频区 | 999色综合 | 国产精品免费av | 久久人人妻人人人人妻性色av | 国产极品视频在线观看 | 无码一区二区三区在线 | 小箩莉末发育娇小性色xxxx | 亲子乱一区二区三区 | 天天干狠狠| 日日夜夜免费精品 |