不能用keil作下載,它應(yīng)該只是一個程序編輯和調(diào)試用的吧,用keil生成hex文件。下載時用專門的下載軟件找到生成的那個hex文件就可以下載
在聞喜等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計制作按需網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,聞喜網(wǎng)站建設(shè)費用合理。
了。,有專門的單片機燒寫軟件的。那個軟件的名字叫STC-ISP
V391(你可以下載個更高版本的)的,你的開發(fā)板里面應(yīng)該自帶下載軟件的?。?/p>
如果你用的下載下是USB轉(zhuǎn)串口的線的話,你需要安裝一個USB轉(zhuǎn)串口驅(qū)動才能下載程序。網(wǎng)上搜一下就可以了。如果有光盤的話就在光盤里面找,里面肯定有的。
下面是具體設(shè)置:
先在KILE
C的options
for
target工具欄中的output選項下,name
of
Executable后面的空框里輸入你要輸出的文件名,然后在Create.Hex項的前面的小方格中打上“勾”,然后編譯,編譯成功就可以生成HEX文件,文件存放在目標程序的相同文件夾下,名字是你輸入的名字,再通過程序下載軟件下載到單片機中就OK了。(不同單片機的下載軟件不一樣,可以到生產(chǎn)公司找到相關(guān)軟件)
OK~
之前在樹莓派4b上點亮了OHOS3.0,不過內(nèi)核是用tftp拉取的,根文件系統(tǒng)掛在了NFS上,拔了網(wǎng)線就無法啟動。當然這么操作只是為了方便調(diào)試,而最終需要的是一個可以燒錄到TF卡上的img鏡像文件。這就需要將所有調(diào)試好的內(nèi)容添加到OHOS3.0的編譯框架,本以為是很簡單的事情,好家伙,整了這么久,感覺添加編譯框架比移植本身更復(fù)雜。于是我整理了添加樹莓派單板到編譯框架的內(nèi)容,希望對各位有所幫助,為大家避坑。
主要參考 hisilicon build組件倉,添加一個products編譯組件,這個組件是在產(chǎn)品配置文件中指定的。比如
productdefinecommonproductsRPI4B.json
其他部分參考Hi3516,但是其中2條,指定單板組件路徑,并添加組件。如果刪除這兩條,將不能編譯內(nèi)核,只生成OHOS的文件系統(tǒng)。
接下來在device目錄下,新建一個raspberrypi編譯組件文件夾,并添加 ohos.build 文件。和前面產(chǎn)品配置文件中的設(shè)置對應(yīng)起來了。
deviceraspberrypibuildohos.build
新建 deviceraspberrypibuildBUILD.gn 當然每個廠家不可能只有1個板子,如果有其他單板就在這里指定,比如樹莓派2B、3B等
既然前面指定了rpi4b的編譯配置組件,那么就在 deviceraspberrypi 新建一個 rpi4b 的目錄,可以參考 hi3516dv300 build組件
deviceraspberrypirpi4bBUILD.gn
至此一個rpi4b build組件就添加到OHOS3.0的編譯框架了,之后相關(guān)內(nèi)容添加到這個文件夾下就可以了。
接下來分析下目前移植了樹莓派4B的哪些內(nèi)容,如何將這些內(nèi)容編譯進OHOS3.0。
關(guān)于補丁可以參考 Patch組件,可以得知內(nèi)核編譯由kernel.mk來執(zhí)行
kernellinuxbuildkernel.mk
所以補丁文件需要放到正確的路徑下,以正確的名字命名就可以patch到內(nèi)核。
hdf.patch補丁文件,現(xiàn)在還沒有移植HDF相關(guān)內(nèi)容,所以可以先使用Hi3516的
rpi4b.patch補丁文件,使用樹莓派的官方鏡像,
kernellinuxconfiglinux-5.10archarmconfigsrpi4b_standard_defconfig
內(nèi)核配置文件目前已知的需要開啟下面內(nèi)容,但是肯定不止這些,以后會繼續(xù)更新
Pi4的GPU是VideoCore VI支持OpenGL ES 3.2,而Pi3的GPU是VideoCore IV支持OpenGL ES 2.0。VideoCore IV 驅(qū)動程序是 VC4,VideoCore VI 驅(qū)動程序的 V3D。內(nèi)核已經(jīng)提供驅(qū)動,參考rpi4b_standard_defconfig將驅(qū)動直接編入到內(nèi)核。
同時需要在config.txt中開啟設(shè)置
OHOS中修改weston的配置文件,指定顯示驅(qū)動
systemetcweston.ini
具體思路就是先查找設(shè)備號,根據(jù)設(shè)備號找到驅(qū)動程序。
前面內(nèi)核配置的時候rpi4b_standard_defconfig中已經(jīng)將觸摸驅(qū)動編入內(nèi)核,所以后面不需要在init加載模塊了,修改下eudev的配置文件即可。
third_partyeudevrules.d ouchscreen.rules
正常情況下內(nèi)核是由uboot進行引導(dǎo)的,而且OHOS默認生成uImage。但是樹莓派自帶BootLoader,雖然可以先用樹莓派自帶的BootLoader啟動uboot,再用uboot加載uImage,但是這樣會比較麻煩,而且會增加啟動時間。不過目前 zImage是寫死在kernel.mk中的,沒辦法改下編譯腳本把。
kernellinuxbuildkernel.mk 將 uImage 改為 zImage modules dtbs
kernellinuxbuildbuild_kernel.sh
kernellinuxbuildBUILD.gn
kernellinuxbuildkernel_module_build.sh
這里內(nèi)核編譯會依賴product_path="vendor/$product_company/$product_name"下的hdf.hcs文件,得先新建一個應(yīng)付下,不然會報下面這個錯誤。
ninja: error: '../../vendor/raspberrypi/RPI4B/hdf_config/uhdf/hdf.hcs', needed by 'gen/drivers/adapter/uhdf2/hcs/hdf_default.hcb', missing and no known rule to make it
新建:vendor/raspberrypi/RPI4B/hdf_config/uhdf/hdf.hcs
對于鏡像燒錄,Hi3516會將uImage、system.img、vendor.img等鏡像燒寫到emmc,但是樹莓派使用TF卡啟動,所以需要對TF卡進行分區(qū),然后復(fù)制對應(yīng)的內(nèi)容到各個分區(qū)。首先制作樹莓派boot目錄,這個用來目錄存放樹莓派設(shè)備樹、config.txt、cmdline.txt、內(nèi)核鏡像等信息。寫一個簡單的mkboot.py腳本來實現(xiàn)這個功能,位置在碼倉rpi4bdeviceraspberrypiimagesmkboot.py將會生成boot.img。
為了方便燒錄,需要將boot.img、system.img、updater.img、vendor.img、userdata.img合并成一個rpi4b.img。還是寫一個簡單的腳本來處理這個步驟rpi4bdeviceraspberrypiimagesmkboot.py。
不過有個問題,主分區(qū)只支持4個,所以updater.img暫時先不合并了,這個問題等以后再來處理。
最后將會得到一個rpi4b.img的鏡像文件,將這個文件燒錄到SD卡就可以了。
Linux:可以使用dd命令
windows:使用Win32 Disk Imager工具燒錄即可。
到這里總算是跑通了一個完整的添加新單板的流程,只不過目前只適配了顯示和觸摸。接下來打算嘗試HDF或者distributed部分。
將你自己焊的單片機的RD/WR口連到開發(fā)板的這兩個口上,用開發(fā)板的電源給你焊的單片機供電,直接就能通過開發(fā)板給單片機燒程序。