中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

圖像識別DM8127開發攻略 ——板子啟動過程

發布時間:2020-07-28 07:24:48 來源:網絡 閱讀:1802 作者:桐燁科技 欄目:系統運維

   上一篇文章《圖像識別DM8127開發攻略——開發環境搭建》介紹了DM8127的開發環境搭建,按本人開發攻略思路,本篇是要先寫《圖像識別DM8127開發攻略——軟件架構淺析及編譯》的,但發現如果沒有搞清楚DM8127的板子如何啟動,就不太好解析整個RDK的編譯過程,所以本人這里先把DM8127板子的啟動過程先描述一下,讓大家從硬件上和軟件運行角度了解整個DM8127的工作過程,然后再去學習IPNC_RDK里面的開發包架構以及開發包的移植工作。

 

上電——→DM8127內部片上的ROM CODE運行——→ROM CODE讀取SYSBOOT PINS電平狀態決定是從NAND FLASH BOOT還是 UART0串口 BOOT或者SD卡BOOT或者PCIe BOOT或者EMAC BOOT或者XIP BOOT——→讀取ubootmin并運行ubootmin(ubootmin取得ARM控制權)——→讀取u-boot并運行u-boot(u-boot取得ARM控制權)——→讀取linux內核BIN并運行linux 內核(linux-2.6.37取得ARM控制權一直到板子復位或者斷電)——→掛載文件系統(可以是存放在NAND FLASH的ubifs,squashfs,或者NFS)——→運行文件系統的腳本——→運行IPNC_RDK整個DEMO應用程序system_server,boalive555等,啟動VPSS M3核,啟動VIDEO M3核,啟動浮點DSP C674X核。

 圖像識別DM8127開發攻略 ——板子啟動過程

 

整個過程可以通過上圖直觀了解。

一、運行ubootmin

一開始上電,DM8127主芯片內部有ROM CODE,這個是使用片上的內部RAM運行的,還沒用片外的DDR3,如果新做的板子什么程序也沒有,只要TPS659113電源管理芯片的供電時序正常,主晶振正常工作,那么ROM CODE就會正常運行,先讀取SYSBOOT PINS(就是BOOT MODE那幾個外接上拉下拉電阻的管腳狀態),如果對應的那些NAND FLASH或者SD 卡或者PCIe等接口沒有程序,那么DM8127這時會通過UART0 不斷輸出C C C C C C ……..的打印字符,試圖通過UART0進行通訊下載UBOOT-OPTI BIN文件(這個UBOOT-OPTI后面介紹UBOOT移植的時候再分析)。

至于運行ubootmin這第2步驟,可以用兩種方式運行方式說明一下:

1、就是在第1步沒上電之前,通過TF卡(SD卡),TF卡預先COPY兩個文件:MLO 和u-boot.bin到卡上,TF卡格式化成FAT32,并且是8倍速以下的卡。這個兩個文件就是后面要提到的ubootmin編譯和uboot-2010.06編譯。其中ubootmin編譯得到就是MLO文件,uboot-2010.06編譯得到就是u-boot.bin。TF(SD卡)先插上到板子上面,然后給板子上電,這樣就會從SD卡BOOT,運行MLO,也就是運行ubootmin。ubootmin這里就會去做很多底層驅動的初始化工作,包括DDR3初始化,這里提到一點,ubootmin還是運行在片內的RAM,并沒有運行在外部DDR3。

2、還有一種超大規模工廠生產的時候,NAND FLASH可以預先燒寫ubootmin BIN文件和 uboot-2010.06 BIN文件,內核BIN文件,文件系統BIN文件,然后再給SMT工廠貼片,那么這時從工廠拿回來的DM8127板子在沒有硬件短路的情況下,根據硬件電路默認設置SYSBOOT PINS為NAND BOOT,那么一上電就會運行NAND FLASH 里面的ubootmin。

 

在沒有程序的情況下,其實絕大部分都是使用第一種方式SD卡BOOT的方式去運行ubootmin。等到燒寫好ubootmin和UBOOTBIN到NAND 的時候,我們才不需要SD卡 BOOT。所謂通過SYSBOOT PINS外接上拉電阻和下拉電阻的電平狀態來BOOT ubootmin:

圖像識別DM8127開發攻略 ——板子啟動過程

只能說是優先從哪種方式BOOT,而TI 內部ROM CODE會自動從優先的BOOT MODE去找對應的ubootmin,比如從NAND 優先BOOT,但是NANDFALSH沒ubootmin,那么ROM CODE會去找SD卡BOOT(又叫MMC BOOT),如果SD卡里面沒有MLO 和u-boot.bin,ROM CODE 繼續找SPI BOOT,如果SPI BOOT 不成功,繼續找UART0 口去BOOT,ROM CODE會一直列舉完幾種BOOT 模式。

 

二、運行完整uboot

ubootmin初始化結束后,會去讀取uboot-2010.06 BIN文件并運行完整的uboot,即uboot-2010.06。完整的uboot-2010.06正常運行,那么可以通過網絡TFTP等操作去燒寫,然后就去運行linux內核了。這個完整的uboot運行是在DDR3了(代碼映射到DDR3存儲地址段不能和kernel沖突),有關uboot-2010.06的移植后面再單獨寫寫,這里不累贅。

 

三、運行linux內核

 uboot-2010.06 會通過各種方式(讀取NAND 里面的BIN文件或者TFTP 下載內核)并運行內核,ARM控制權交給內核,這個linux內核也是運行在DDR3。

 

四、內核掛載文件系統

   這個也不需要累贅,做過linux嵌入式開發都知道,研發先使用NFS調試通,然后再制作ubifs BIN文件或者squashfs BIN文件燒到板子NAND FLASH去。

 

五、執行文件系統的腳本

首先會去運行文件系統etc里面的一大堆腳本,最后再運行/etc/init.d/finish_ubifs.sh的腳本:

cd/opt/ipnc

./init.sh

./system_server

sleep7

./autorun_ipnc.sh

這些腳本的內容可以去對應的NFS文件系統目錄打開看看。

運行DEMO程序這些都會在system_server這個應用程序去打開,或者并行去打開。都是LINUX 應用層面的程序。

 

六、其他3個核的啟動

啟動VPSS M3核(ipnc_rdk_fw_m3vpss.xem3),啟動VIDEO M3核(ipnc_rdk_fw_m3video.xem3),啟動DSP 核(ipnc_rdk_fw_c6xdsp.xe674)都有對應的load腳本。見下面2張圖:

圖像識別DM8127開發攻略 ——板子啟動過程

 

圖像識別DM8127開發攻略 ——板子啟動過程

 

注意上面兩張圖的路徑,知道這些程序和腳本放在什么地方。

其實在system_server應用程序可以使用類似以下方法執行這些腳本:

              system("./scripts/load_vpss.sh&");

       system("./scripts/load_video.sh&");

system("./scripts/load_c6xdsp.sh&");

 

 

好了,有關DM8127的啟動過程就寫到這里,要深入了解,建議還是拿板子進行調試,理論的東西不如手動去驗證,通過實際操作,才更好掌握DM8127 這個ARM+浮點DSP的開發方法。

   (題外話,有些網友通過本人QQ2505133162了解DM8127是否可以做深度學習算法,本人通過很多方面得到個人結論:DM8127不適合復雜的深度學習算法,只能做車牌識別,人臉識別,智能安防IVS這些產品,TI DAVINCI 平臺有適合自動駕駛的DM505解決方案,可以做一些深度學習算法,我們目前還沒有這個平臺。)


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

壶关县| 建德市| 衡南县| 康保县| 无棣县| 蛟河市| 墨竹工卡县| 临泉县| 黄浦区| 都江堰市| 阜新| 吴旗县| 邮箱| 邳州市| 泽库县| 南通市| 万源市| 松桃| 隆安县| 新宁县| 阜平县| 商洛市| 老河口市| 城固县| 黄石市| 乌兰察布市| 云安县| 开原市| 通州市| 民权县| 庐江县| 白玉县| 诏安县| 江永县| 永康市| 浪卡子县| 九寨沟县| 溧阳市| 五原县| 固安县| 武平县|