国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

AM335x主板18個問題整理及解決思路 第一章(連載)

發布時間:2021-4-14 16:35    發布者:哦哈喲
關鍵詞: 飛凌嵌入式
本文基于飛凌嵌入式AM335x嵌入ARM主板(https://www.forlinx.com/)為基礎講解,系統采用Linux,以下問題已經在AM335x 主板上做了驗證,通過本文您可以快速解決AM335x平臺一些容易出錯的地方,由于各個廠家提供的鏡像不同,如您選擇其他廠商ARM主板,請酌情參考使用。本次共整理了18個問題,由于內容較多分為兩章講解分享,本章分享第1-12問題解決思路。
為便于查詢檢索AM335x問題,小編列出目錄,請根據您的需查詢。

AM335x 應用筆記1、AM335x  Linux系統自啟運行Qt程序
2、AM335x Qt程序添加背景-
3、AM335x Qt界面應用程序中取消光標的方法
4、AM335x  Linux QT視頻打開不能退出問題
5、AM335x 開機LOGO連續顯示的方法
6、AM335x 更改Qt界面 — FORLINX字符串
7、AM335想 更改開機畫面—左上角小企鵝圖標
8、AM335x  生成按鍵設備名keypad的方法
9 、AM335X更改GPIO的方法
10、AM335x  SPI改成CAN的方法
11、AM335x 增加串口的方法
12、AM335x解決開發板觸摸不靈敏問題
13、AM335x  添加應用程序到桌面的方法
14、AM335x  解決NAND erase.chip燒寫錯誤的方法
15、AM335x  添加LCD的方法
16、AM335x  系統自動登錄方法
17、AM335x  硬件看門狗開啟方法
18、AM335x  修改MAC地址

注:本文所提到的鏡像、源碼等,請在飛凌提供的下載資料中查詢。


正文開始:1、AM 335x Linux系統自啟運行Qt程序修改的文件路徑及文件名:/etc/init.d/qt.sh
比如AM335x ARM主板要開機自啟動自己編寫的qt應用程序Helloworld(假如程序放在文件系統的‘ / ’  目錄下),我們修改一下文件末尾就行,修改如下:
修改前

修改后

說明,注釋掉 ./matrix_gui -qws 2>/dev/null &(如果不注釋,會有影響),然后,添加自己的應用程序。
修改完qt.sh文件保存退出,然后輸入命令sync,重啟開發板
注:重啟AM335x 開發板前,一定要輸入sync,否則,修改的文件會恢復成原樣,無法生效。

2、Qt程序添加背景
給自編的qt程序添加背景可以美化qt程序的外觀,現介紹兩種添加背景的方法:
1、如果單純拷到AM335x arm板上運行顯示背景,可以重寫paintEvent()事件,在該事件中用畫筆QPainter的方式畫整個背景,該方法在把程序添加到桌面后背景無法正常顯示。
    void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
  painter.drawPixmap(0,0,width(),height(),QPixmap("./11.png"));
}
經驗證png格式的圖片可以正常顯示,其他格式的例如jpg格式是無法顯示的。
2、使用樣式表,該方式將圖片作為資源文件添加到工程中,通過讀取資源文件完成背景的設置。該方式在把程序添加到桌面后依然可以正常顯示。下面簡介一下步驟:

(1)把背景圖片作為Qt資源文件添加到項目中,在資源文件中添加前綴/image,然后將圖片添加進來如下圖:
注:先點擊Add Prefix添加前綴,再點Add Files添加圖片文件。

(2)Qt樣式表可以存放以.qss為后綴的文件,所以可以在程序中調用不同的.qss文件實現不同背景的替換。在資源文件中添加“/qss”前綴,再添加資源文件,在左側細目列表處右擊添加文件,選擇General中的文本文檔,命名為my.qss,可以多添加幾個。然后參照添加圖片的方法將此文件添加到/qss前綴下。

然后編輯此文本文檔,下面的代碼僅供參考:
然后在MainWindow的構造函數中調用此文檔即可,如下:
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QFile file(":/qss/my.qss");
    file.open(QFile::ReadOnly);
    QStringstyleSheet=tr(file.readAll());
    qApp->setStyleSheet(styleSheet);
}
這樣就可以將圖片設置為背景圖案了。

3、Qt界面應用程序中取消光標的方法
在AM335x的應用程序中有光標顯示,如果想要不顯示光標,客戶可以自己編寫應用程序,然后在應用程序的主函數main中添加QWSServer::setCursorVisible(false);

4、 Linux QT視頻打開不能退出問題
問題:舊版本的AM335x系列產品Linux QT視頻出現打開不能退出
注:  新版本的產品中已經沒有了該問題
解決方法:去掉循環播放
修改文件系統源碼: \forlinx\web\lighttpd\webpages\shell\下的腳本,將movie-once.sh腳本重新命名為movie.sh,替換掉原有的movie.sh即可。

5、 開機LOGO連續顯示的方法
現在發布的鏡像燒寫啟動后uboot和內核的logo不是連續顯示的,中間大概有5S的黑屏時間,怎樣去掉這個黑屏時間呢?
這需要修改代碼如下:
arch/arm/mach-omap2/board-am335xevm.c文件中
void ecap_init(intevm_id, int profile)函數中
#if defined(CONFIG_OK335XD)
setup_pin_mux(ecap0_pin_mux);
改為:
//setup_pin_mux(ecap0_pin_mux);
重新編譯內核,燒到板子上即可 。
同時可以看到有關AM335其他平臺的配置內容,注釋掉對應平臺的內容,效果相同。

6、更改Qt界面 —FORLINX字符串
修改AM335x的QT界面中出現的FORLINX DEMOS字符以及字符前邊的logo的方法:首先,需要知道的是FORLINX DEMOS字符串修改所在的文件在rootfs文件系統下邊的/forlinx/web/lighttpd/webpages/submenu.php文件中:
將其改為需要的字樣保存。
其次,FORLINX DEMOS字符串前邊的logo圖片在的rootfs文件系統下邊的/forlinx/web/lighttpd/webpages/images文件夾中,大小為30x30,png格式,制作圖片替換即可。

7、更改開機畫面—左上角小企鵝圖標
使用下面的方法可以將企鵝的Logo換成自己喜歡的任意圖片。
首先準備一幅自己喜歡的圖片,然后將背景涂成黑色。然后將該圖片保存成png格式,例如linuxlogo.png。將該圖片保存在/home/forlinx/work/目錄下
打開虛擬機進入Ubuntu開發環境,在linuxlogo.png的同一目錄下使用下面的命令:

# pngtopnm linuxlogo.png >linuxlogo.pnm
# pnmquant 224 linuxlogo.pnm> linuxlogo224.pnm
# pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

運行完上面的命令之后,生成linuxlogo224.ppm文件

打開產品用戶資料,拷貝src目錄下的kernel-3.2.tar.bz2文件到虛擬機的/home/forlinx/work下面,然后執行以下命令。
#tar xvf kernel-3.2.tar.bz2
#mv/home/forlinx/work/linuxlogo224.ppm /kernel-3.2/drivers/video/logo/logo_linux_clut224.ppm
(最好先做好備份),然后刪除同一目錄下的logo_linux_clut224.c文件,
然后重新編譯內核(以軟件手冊的編譯方法為準)
編譯SDIO WIFI功能的內核時:
#cp arch/arm/configs/ok335xd_evm_linux_sdio_defconfig .config
編譯USB WIFI功能的內核時:
#cp arch/arm/configs/ok335xd_evm_linux_usb_defconfig .config
然后編譯:
#make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm uImage
編譯完成后會自動在arch/arm/boot/ 目錄形成uImage文件,
將該文件拷入SD卡boot分區或燒寫到nand后即可使用。
啟動AM335x 主板之后就可以在屏幕左上方看到自己的Logo了。

8、生成按鍵設備名keypad的方法
目前有客戶咨詢AM335x系列的開發板上的按鍵設備名keypad是怎樣生成的,因為在內核驅動中找不到相對應的名字。
在內核中按鍵的名字使用的是gpio-keys,然后在文件系統中進行了一個系統連接名字就變成了keypad.
具體的文件是/etc/udev/rules.d/local.rules文件
該文件中的以下語句就是生成keypad的鏈接命令
# Create a symlink to any gpio-keys input device
SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{name}=="gpio-keys", SYMLINK+="input/keypad"

9、更改GPIO的方法
1.內核中的修改方法見gpio.patch文件。
2.具體的操作讀取數值的方法
一般可以這樣計算GPIOn_IOx = n*32 + x
對gpio3_9進行操作。
1)root@ok335x:~#echo 105 > /sys/class/gpio/export
2)root@ok335x:~#cat /sys/kernel/debug/gpio

可以看到在系統中注冊了gpio3_9的號。
3)root@ok335x:~#cat /sys/class/gpio/gpio105/value

低電平的時候讀到的數值是0
4)root@ok335x:~#cat /sys/class/gpio/gpio105/value

測試中可以通過飛線的方式給AM335x核心板上的gpio3_10的引腳一個3.3v的高電平讀到的數值1.

其中可以把R78電阻拆掉了,防止這個角其他的信號對它造成影響。


10  SPI改成CAN的方法
spi接口是可以修改成can使用的,具體的方法是在內核中修改,具體的修改內容參考spi_to_can.patch文件
注意:包含頭文件

11  增加串口的方法
通過查閱CPU手冊,AM335x平臺可以最多復用出6路串口,UART0 – UART5。本次以復用UART5為例,講解如何在AM335x平臺添加串口設備。

1、查閱Sitara AM335x ARM Cortex-A8 microprocessors (MPUs) (Rev. F)手冊,查看該手冊中球特性的內容,該部分列舉了CPU各球號對應的復用功能,搜索UART5,找到可復用為UART5的球號,選擇合適的兩個球號(我們CPU用的是zcz的封裝模式),作為uart5_rxd與uart5_txd,如圖MII1_COL在選擇mode3時,功能為uart5_rxd,并對該引腳做uart5_rxd時相關的配置做了定義,比如reset state為低速(L)等等。
從實際出發,應該先考慮核心板是否把與UART5相關的球號引出,如果引出,那該引腳是否復用做其他功能,該功能可否去掉,衡量之后選擇兩個合適的引腳。
本次選擇mii1_col與rmii1_refclk兩個引腳,核心板上已經引出,但在底板上沒有引出,需要飛線。
2、該平臺的串口驅動已經調好,所以只需要修改板級文件即可。路徑為:
kernel-3.2/arch/arm/mach-omap2/board-am335xevm.c。
該文件中已經有UART5的pinmux配置,如下:
static structpinmux_config uart5_pin_mux_s2[] = {
{"mii1_col.uart5_rxd",OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW | AM33XX_PIN_INPUT_PULLUP},
{"rmii1_refclk.uart5_txd",OMAP_MUX_MODE3 | AM33XX_PULL_UP | AM33XX_PULL_DISA | AM33XX_SLEWCTRL_SLOW},
// {"mii1_rxerr.uart5_rtsn", OMAP_MUX_MODE5 | AM33XX_PIN_OUTPUT | AM33XX_PULL_ENBL},
// {"mii1_crs.uart5_ctsn",OMAP_MUX_MODE5 | AM33XX_PIN_INPUT_PULLUP},
{NULL,0},
};
注釋:“OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW | AM33XX_PIN_INPUT_PULLUP”是對uart5_rxd引腳的控制狀態寄存器(CONTROL_MODULE REGISTERS)的配置,這三個量都是宏定義,具體的含義可在mux.h文件中查到,路徑同為:kernel-3.2/arch/arm/mach-omap2/,通過解讀,該值為01110011。
控制狀態寄存器(CONTROL_MODULE REGISTERS)如何配置要參考CPU手冊,AM335x ARM Cortex-A8 Microprocessors (MPUs) Technical Reference Manual (Rev. H)。該手冊的第九章中的Table 9-10對CPU的各引腳的控制狀態寄存器進行了列舉,找到mii1_col,如下圖:

轉到Section 9.3.51,如下圖:
可見該寄存器只有低7位可以設置,對應mii1_col.uart5_rxd配置的寄存器值為01110011,低三位對引腳的mode進行設置,mode3為uart5_rxd,其余數值在球特性部分有介紹,這里就不做詳細說明了。

將板級文件里pinmux的定義配置好,再將其添加到uart_init()函數中,如下:
這樣就完成了UART5的添加。

原文鏈接:https://www.forlinx.com/article_view_607.html

連載未完待續 接下篇 :https://www.forlinx.com/article-new-c22/608.html
本文地址:http://m.qingdxww.cn/thread-764721-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九热精品在线视频 | 午夜亚洲一区二区福利 | 久久久国产99久久国产一 | 精东传媒 果冻传媒 | 天天摸日日操 | 国产中日韩一区二区三区 | 亚洲欧美一区二区三区在饯 | 国产欧美日韩在线一区二区不卡 | 五月婷婷俺来也 | 日韩无砖专区体验区 | 牛牛视频在线观看 | 日本不卡视频一区二区三区 | 久操久操久操 | 国产精品欧美亚洲日本综合 | 亚洲男人的天堂久久精品 | 欧美又大粗又爽又黄大片视频黑人 | 免费jjzz在线播放国产 | 久久综合九色综合精品 | 亚洲黄色毛片 | 久热影视 | 国产啪| 五月婷婷视频在线 | 适合男人晚上看的app软件 | 无人视频完整免费版视频观看下载 | 成人免费动作大片黄在线 | 67194国产精品 | 欧美理论大片清免费观看 | 亚洲视频色 | 在线亚洲观看 | 日本不卡中文字幕一区二区 | 可以免费看污视频的网站 | 自拍偷拍第4页 | 欧美国产黄色 | 国产一级毛片a午夜一级毛片 | 国产精品久久久久不卡绿巨人 | 羞羞色男人的天堂伊人久久 | 日日舔| 国产一级一国产一级毛片 | 99精品偷自拍 | 香蕉久久成人网 | 黄色国产在线视频 |