套件實(shí)戰(zhàn):從燒錄到圖像加速)
開箱一塊車載視覺開發(fā)板先別急著接屏幕。做ADAS高級駕駛輔助和環(huán)視方案的朋友應(yīng)該都懂項(xiàng)目前期最耽誤時(shí)間的往往不是算法本身而是把底層SoC跑起來、把圖像鏈路打通的過程。R-Car V3M這顆芯片在瑞薩的產(chǎn)品線里定位很明確面向車載攝像頭的實(shí)時(shí)圖像處理跟那些動(dòng)輒幾十瓦的桌面級平臺(tái)完全是兩個(gè)路子。今天聊的這塊Starter Kit官方名字就叫“Kit for R-Car V3M SoC Speeds Development”本質(zhì)就是官方給的評估板加完整軟件棧目標(biāo)很直接讓你在拿到板子的第一天就把Linux跑起來而不是花兩周去啃數(shù)據(jù)手冊。我拿這套件實(shí)際折騰了一段時(shí)間從硬件查錯(cuò)到軟件編譯都過了一遍。這篇文章不打算復(fù)讀規(guī)格書而是把套件里的門道、開發(fā)流程里容易卡殼的地方、以及一些手冊上沒寫透的細(xì)節(jié)梳理出來。無論你是剛接手車載項(xiàng)目想快速驗(yàn)證方案還是準(zhǔn)備基于V3M做產(chǎn)品預(yù)研這篇應(yīng)該都能幫你省下不少時(shí)間。1. 為什么選擇R-Car V3M一款面向車載視覺應(yīng)用的SoC1.1 從芯片定位看套件價(jià)值R-Car V3M不是一顆通用應(yīng)用處理器。它最核心的戰(zhàn)場是車載攝像頭應(yīng)用包括環(huán)視監(jiān)控AVM、電子后視鏡CMS、以及部分前視輔助功能。這類場景有一個(gè)共同特點(diǎn)對實(shí)時(shí)性要求極高同時(shí)又對功耗和成本非常敏感。跟手機(jī)SoC那種追求跑分的思路不同V3M強(qiáng)調(diào)的是以最低功耗完成持續(xù)的圖像采集、拼接、識別和輸出。這顆SoC的計(jì)算單元很有意思。它沒有堆砌一堆大核而是走異構(gòu)路線兩個(gè)Cortex-A53核負(fù)責(zé)跑Linux系統(tǒng)和應(yīng)用邏輯一個(gè)Cortex-R7鎖步核負(fù)責(zé)實(shí)時(shí)控制和功能安全相關(guān)的任務(wù)再加上瑞薩自研的圖像處理加速器IMP來處理視覺算法。這種架構(gòu)意味著你在開發(fā)時(shí)要養(yǎng)成一個(gè)習(xí)慣先想清楚任務(wù)該跑在哪個(gè)核上而不是一股腦全丟給A53。Starter Kit的價(jià)值就在于此。它把這些異構(gòu)資源全部引出來配上對應(yīng)的驅(qū)動(dòng)和示例讓你不用在硬件設(shè)計(jì)完成之前就開始寫軟件。很多團(tuán)隊(duì)習(xí)慣等自研板卡回來才開始調(diào)軟件結(jié)果硬件一改版軟件全部返工。用開發(fā)套件先跑通軟件方案再反哺硬件設(shè)計(jì)這個(gè)順序能省下至少一個(gè)迭代周期。1.2 R-Car V3M核心硬件規(guī)格解析在深入套件之前有必要把V3M的關(guān)鍵參數(shù)理清楚。我整理了一張表方便你對照自己的項(xiàng)目需求模塊規(guī)格說明CPU2 x Cortex-A53 1GHz用于Linux操作系統(tǒng)和應(yīng)用層實(shí)時(shí)核1 x Cortex-R7 鎖步 800MHz用于實(shí)時(shí)控制和功能安全圖像處理圖像信號處理器ISP IMP支持多路攝像頭輸入與視覺加速視頻編解碼支持H.264/H.265用于編碼輸出與回放內(nèi)存接口DDR3L/DDR4支持ECC提升系統(tǒng)穩(wěn)定性功能安全符合ISO 26262鎖步核與安全機(jī)制典型功耗約3-5W視負(fù)載適配車載散熱環(huán)境注意看內(nèi)存接口支持ECC。這一點(diǎn)對車載應(yīng)用非常關(guān)鍵因?yàn)閮?nèi)存位翻轉(zhuǎn)在高溫振動(dòng)環(huán)境下并不罕見ECC能在硬件層面糾正單比特錯(cuò)誤避免系統(tǒng)跑著跑著突然崩潰。如果你的項(xiàng)目對穩(wěn)定性有硬性要求選型時(shí)一定要把是否支持ECC列為必選項(xiàng)而不是只看CPU頻率。ISP支持多路攝像頭輸入這是做環(huán)視方案的硬件基礎(chǔ)。實(shí)際項(xiàng)目中經(jīng)常遇到的問題是ISP的驅(qū)動(dòng)配置和攝像頭模組的適配這部分在套件里已經(jīng)有了比較完整的參考實(shí)現(xiàn)后面第三章會(huì)細(xì)說。2. 套件構(gòu)成與整體設(shè)計(jì)思路2.1 開發(fā)套件里到底有什么拆開包裝里面除了核心板之外還有底板、電源適配器、USB線纜和串口調(diào)試線。這里要特別提醒一個(gè)容易犯的錯(cuò)很多人拿到板子第一件事就是找HDMI接口想接顯示器但V3M這塊板子的定位是嵌入式視覺處理不靠顯示器交互一切操作都通過串口終端完成。如果你習(xí)慣用桌面系統(tǒng)第一次面對純串口的開發(fā)環(huán)境可能會(huì)有點(diǎn)不適應(yīng)但這個(gè)思路其實(shí)更貼近車載產(chǎn)品的真實(shí)形態(tài)——車載設(shè)備本來就沒有人給你接顯示器。核心板與底板分離的設(shè)計(jì)是一個(gè)值得點(diǎn)贊的細(xì)節(jié)。核心板上集成了SoC、內(nèi)存和電源管理底板則引出各種接口。這個(gè)設(shè)計(jì)有兩個(gè)實(shí)際好處一是如果底板上的某個(gè)接口燒了換底板就行不用整板報(bào)廢二是你可以基于核心板去設(shè)計(jì)自己的載板核心板上的啟動(dòng)配置已經(jīng)驗(yàn)證過省去你自己畫電源樹和DDR走線的風(fēng)險(xiǎn)。2.2 板級布局與外設(shè)接口說明底板上的接口布局需要重點(diǎn)關(guān)注。V3M套件引出的接口包括多路CSI-2攝像頭接口、以太網(wǎng)口、CAN接口、USB口、SD卡槽和調(diào)試串口。從這些接口就能看出瑞薩的設(shè)計(jì)意圖CAN口直接對應(yīng)車載總線CSI-2接口對著攝像頭的MIPI輸出以太網(wǎng)口則用于數(shù)據(jù)回傳或者OTA升級。這個(gè)外設(shè)組合基本就是一輛車端感知單元的最小閉環(huán)。攝像頭接口的位置比較講究它被安排在板邊靠近SoC的一側(cè)這樣走線短信號完整性更容易保證。如果你打算自己設(shè)計(jì)載板攝像頭接口的位置也要盡量靠近SoC不要為了布板方便把MIPI走線繞一大圈。MIPI信號對長度匹配和阻抗連續(xù)性要求很高走線太長或打過孔太多輕則圖像花屏重則根本采不到信號。2.3 選型建議Starter Kit vs 自研板卡很多團(tuán)隊(duì)會(huì)糾結(jié)一個(gè)問題項(xiàng)目初期是買官方套件還是直接畫自己的板子我的建議很直接除非你的硬件團(tuán)隊(duì)對車載電源設(shè)計(jì)和DDR布線非常熟練否則務(wù)必先買一套官方Starter Kit。原因有三點(diǎn)第一軟件驗(yàn)證需要硬件平臺(tái)串口啟動(dòng)、網(wǎng)絡(luò)調(diào)試、攝像頭采集這些基礎(chǔ)能力需要一塊穩(wěn)定可靠的板子來支撐第二官方套件的原理圖、PCB文件和物料清單都是開放的這等于給了你一份經(jīng)過驗(yàn)證的參考設(shè)計(jì)比自己從零畫板省力得多第三遇到問題時(shí)你用開發(fā)板復(fù)現(xiàn)問題給瑞薩FAE看對方的支持效率會(huì)高很多。等軟件方案跑通了再根據(jù)開發(fā)板的經(jīng)驗(yàn)去設(shè)計(jì)量產(chǎn)板卡風(fēng)險(xiǎn)會(huì)小很多。3. 開始前的準(zhǔn)備搭建開發(fā)環(huán)境3.1 所需硬件與軟件清單拿到套件后先別急著上電。你還需要準(zhǔn)備幾樣?xùn)|西一臺(tái)運(yùn)行Ubuntu 18.04或20.04的x86主機(jī)用來編譯代碼和燒錄鏡像一條USB轉(zhuǎn)串口線如果套件沒有附帶用來連接調(diào)試串口一張至少8GB的microSD卡用來存放啟動(dòng)鏡像一個(gè)5V/3A以上的電源適配器如果套件沒有附帶一臺(tái)以太網(wǎng)交換機(jī)或直連網(wǎng)線用于網(wǎng)絡(luò)調(diào)試如果涉及攝像頭開發(fā)還需要一套MIPI CSI-2接口的攝像頭模組軟件方面主要需要安裝交叉編譯工具鏈、串口終端軟件和鏡像燒錄工具。下面逐個(gè)說。3.2 交叉編譯工具鏈安裝V3M的A53核是64位ARM架構(gòu)所以需要安裝aarch64版本的交叉編譯工具鏈。在Ubuntu上執(zhí)行sudo apt update sudo apt install gcc-aarch64-linux-gnu安裝完成后驗(yàn)證一下aarch64-linux-gnu-gcc --version如果能正常輸出版本號說明工具鏈已經(jīng)可用。這里有個(gè)小坑有些項(xiàng)目的BSP會(huì)要求特定的工具鏈版本比如GCC 7.5或9.2直接裝系統(tǒng)自帶的版本可能編譯出來的程序在目標(biāo)板上無法運(yùn)行報(bào)錯(cuò)一般是Floating point exception或者Illegal instruction。遇到這種情況別慌大概率是工具鏈版本不匹配去BSP文檔里找到指定版本重新安裝即可。3.3 串口調(diào)試終端配置串口是嵌入式開發(fā)的生命線尤其是這種沒有顯示接口的板子。用USB轉(zhuǎn)串口線連接開發(fā)板的調(diào)試串口然后在Ubuntu上安裝minicom或picocomsudo apt install picocom先看一下設(shè)備名ls /dev/ttyUSB*通常是/dev/ttyUSB0。然后啟動(dòng)終端sudo picocom -b 115200 /dev/ttyUSB0波特率一般是1152008N18數(shù)據(jù)位、無校驗(yàn)、1停止位這是嵌入式調(diào)試串口最常見的配置。如果連接后按回車沒有反應(yīng)先檢查USB轉(zhuǎn)串口線是否被識別再檢查開發(fā)板是否已經(jīng)上電、啟動(dòng)開關(guān)是否撥到了正確位置。注意串口終端里顯示的亂碼多半是波特率不對或者開發(fā)板沒有正確進(jìn)入下載/啟動(dòng)模式。不要反復(fù)改波特率碰運(yùn)氣先確認(rèn)啟動(dòng)配置。4. 核心實(shí)操從燒錄鏡像到Linux啟動(dòng)4.1 獲取與構(gòu)建啟動(dòng)鏡像R-Car系列的軟件BSP可以從瑞薩官網(wǎng)下載一般包含三個(gè)部分引導(dǎo)程序Bootloader、內(nèi)核Linux Kernel和根文件系統(tǒng)RootFS。瑞薩提供了一套基于Yocto的構(gòu)建系統(tǒng)可以一鍵生成完整的啟動(dòng)鏡像但對初次接觸的用戶來說直接使用預(yù)編譯鏡像更省事。官網(wǎng)提供的預(yù)編譯鏡像通常是一個(gè)壓縮包解壓后可以看到以下關(guān)鍵文件ImageLinux內(nèi)核鏡像r8a77970.dtb設(shè)備樹文件描述了硬件平臺(tái)信息u-boot.bin引導(dǎo)加載程序rootfs.ext4根文件系統(tǒng)鏡像如果要做定制修改再上Yocto去折騰。這里要說一個(gè)經(jīng)驗(yàn)第一輪開發(fā)一定是先用預(yù)編譯鏡像把環(huán)境跑熟不要一上來就搞Yocto。Yocto的構(gòu)建時(shí)間極長第一次構(gòu)建可能要幾個(gè)小時(shí)甚至一個(gè)晚上如果build過程中網(wǎng)絡(luò)不好還會(huì)頻繁失敗極易勸退新手。4.2 燒錄SD卡拿到預(yù)編譯鏡像后需要制作一張可啟動(dòng)的SD卡。首先用fdisk或gparted將SD卡分成兩個(gè)分區(qū)第一個(gè)分區(qū)格式化為FAT32存放內(nèi)核和設(shè)備樹第二個(gè)分區(qū)格式化為ext4存放根文件系統(tǒng)。更快的做法是直接用dd命令寫入整卡鏡像。如果瑞薩提供的是sdcard.img整卡鏡像操作就非常簡單sudo dd ifsdcard.img of/dev/sdb bs4M statusprogress sync這里的/dev/sdb是你的SD卡設(shè)備名用之前務(wù)必用lsblk確認(rèn)一下千萬不要寫錯(cuò)設(shè)備名否則可能把整個(gè)硬盤的數(shù)據(jù)清掉。整個(gè)過程可能需要幾分鐘看到sync執(zhí)行完成后才能拔卡否則數(shù)據(jù)可能沒寫完。4.3 啟動(dòng)開關(guān)與啟動(dòng)流程把燒錄好的SD卡插入開發(fā)板然后查看底板上的啟動(dòng)配置撥碼開關(guān)。V3M支持從多種介質(zhì)啟動(dòng)SD卡、eMMC、串口下載等具體由撥碼開關(guān)的狀態(tài)決定。套件出廠默認(rèn)通常是SD卡啟動(dòng)如果需要手動(dòng)設(shè)置參考底板絲印上的標(biāo)注一般有BOOT相關(guān)的字樣。上電后串口終端會(huì)輸出U-Boot的啟動(dòng)日志。看到類似下面的輸出就說明U-Boot已經(jīng)在運(yùn)行了U-Boot 2020.01 (Jan 01 2022 - 00:00:00 0000) CPU: Renesas Electronics R8A77970 DRAM: 2 GiB MMC: sdee140000: 0 Loading Environment from MMC... OK接著會(huì)自動(dòng)加載內(nèi)核和設(shè)備樹最終進(jìn)入Linux登錄提示符。V3M的標(biāo)準(zhǔn)Linux登錄名一般是root密碼為空或者為root具體看BSP文檔說明。4.4 啟動(dòng)日志分析與驗(yàn)證系統(tǒng)啟動(dòng)完成后先做幾個(gè)驗(yàn)證步驟確保平臺(tái)基本功能正常cat /proc/cpuinfo查看CPU信息和核心數(shù)應(yīng)該能看到兩個(gè)A53核。再查看內(nèi)存free -h如果顯示的內(nèi)存與開發(fā)板參數(shù)不符比如標(biāo)稱2GB但只識別到1GB需要檢查設(shè)備樹中的內(nèi)存配置是否正確。接著測試網(wǎng)絡(luò)ifconfig eth0 up udhcpc如果網(wǎng)絡(luò)正常會(huì)通過DHCP獲取到IP地址。到這里一套最基本的啟動(dòng)驗(yàn)證流程就完成了。提示啟動(dòng)日志中如果出現(xiàn)Kernel panic - not syncing: VFS: Unable to mount root fs說明根文件系統(tǒng)加載失敗大概率是SD卡分區(qū)表不正常或設(shè)備樹中的root分區(qū)號不對優(yōu)先檢查這兩項(xiàng)。5. 上層應(yīng)用開發(fā)跑通第一個(gè)示例程序5.1 編寫并交叉編譯程序平臺(tái)跑起來了接著寫第一個(gè)應(yīng)用程序。在Ubuntu主機(jī)上創(chuàng)建一個(gè)hello.c#include stdio.h int main(void) { printf(Hello from R-Car V3M!\n); return 0; }然后用交叉編譯工具鏈編譯aarch64-linux-gnu-gcc -o hello hello.c注意不要用系統(tǒng)的gcc直接編譯那樣編出來的是x86程序在ARM板子上跑不了。文件類型可以用file命令檢查file hello輸出應(yīng)該包含ARM aarch64字樣這才說明是一個(gè)能在目標(biāo)板上運(yùn)行的可執(zhí)行文件。5.2 部署并運(yùn)行程序把編譯好的程序傳到開發(fā)板上最方便的方式是網(wǎng)絡(luò)傳輸。先在開發(fā)板上確認(rèn)IP地址然后用scp拷貝scp hello root開發(fā)板IP:/root/在開發(fā)板上執(zhí)行chmod x /root/hello /root/hello看到輸出Hello from R-Car V3M!恭喜你完整的嵌入式開發(fā)流程已經(jīng)跑通了。這個(gè)流程雖然簡單但它是之后所有開發(fā)工作的基礎(chǔ)編寫代碼、交叉編譯、網(wǎng)絡(luò)傳輸、目標(biāo)板運(yùn)行。后續(xù)開發(fā)攝像頭例程、網(wǎng)絡(luò)服務(wù)甚至深度學(xué)習(xí)推理程序走的都是這條路。這里分享一個(gè)日常開發(fā)效率技巧在主機(jī)上用SSH密鑰登錄開發(fā)板再配合rsync做文件同步可以省去反復(fù)輸入密碼的麻煩。我個(gè)人的習(xí)慣是寫一個(gè)同步腳本把編譯輸出的目錄通過rsync推到開發(fā)板上每次編譯完只需要執(zhí)行一條命令就能完成部署比來回scp省事很多。5.3 進(jìn)階方向利用IMP進(jìn)行圖像加速V3M的視覺處理核心IMPImage Processing Accelerator是這顆SoC的精華所在。它就像一塊專用的圖像處理加速器能把色彩空間轉(zhuǎn)換、縮放、濾波這類操作從CPU上卸載下來。瑞薩提供的軟件包中包含了IMP的驅(qū)動(dòng)和示例代碼但說實(shí)話它的API文檔風(fēng)格和Linux社區(qū)的一般驅(qū)動(dòng)不太一樣學(xué)習(xí)曲線比較陡。我的建議是先用官方示例把數(shù)據(jù)通路跑通比如從攝像頭采集圖像、經(jīng)過ISP處理、通過IMP加速后輸出到顯示器或編碼器。跑通之后再嘗試修改參數(shù)逐步理解每個(gè)模塊的作用。這里要特別提醒IMP的緩沖區(qū)對齊要求很嚴(yán)格分配內(nèi)存時(shí)一定要用支持物理連續(xù)的內(nèi)存分配接口比如ION或DMA-BUF如果直接用普通的malloc圖像數(shù)據(jù)很容易出現(xiàn)莫名其妙的撕裂或花屏排查起來非常費(fèi)勁。6. 常見問題與排查技巧實(shí)錄6.1 啟動(dòng)階段問題速查表整個(gè)開發(fā)過程中啟動(dòng)階段是最容易出問題的環(huán)節(jié)。我把實(shí)際遇到的高頻問題和解決思路整理成了表格方便你對照排查現(xiàn)象可能原因排查與解決上電后串口無輸出電源沒接好、串口線接觸不良、波特率錯(cuò)誤檢查電源指示燈更換串口線確認(rèn)終端設(shè)置為115200/8N1U-Boot啟動(dòng)后卡住SD卡分區(qū)表異?;蜱R像文件損壞重新燒錄SD卡必要時(shí)用整卡鏡像內(nèi)核啟動(dòng)時(shí)反復(fù)重啟設(shè)備樹與硬件不匹配檢查DTB文件是否正確確認(rèn)dts中內(nèi)存大小參數(shù)掛載根文件系統(tǒng)失敗root分區(qū)編號不對檢查內(nèi)核啟動(dòng)參數(shù)中的root/dev/mmcblk0p2是否對應(yīng)實(shí)際分區(qū)網(wǎng)絡(luò)不通IP地址未配置、網(wǎng)線未插好先用ifconfig確認(rèn)網(wǎng)卡狀態(tài)再用udhcpc獲取IP攝像頭采集不到圖像MIPI線序錯(cuò)誤、ISP驅(qū)動(dòng)未加載檢查攝像頭排線方向確認(rèn)dmesg中ISP相關(guān)日志正常6.2 開發(fā)過程中的幾個(gè)坑除了啟動(dòng)階段的問題開發(fā)過程中的坑也很有代表性。第一個(gè)坑是電源紋波問題。V3M對電源質(zhì)量比較挑剔如果你用的是自研底板電源設(shè)計(jì)一定要嚴(yán)格按照數(shù)據(jù)手冊的要求來尤其是DVFS動(dòng)態(tài)調(diào)壓的部分。我遇到過一塊板子在低負(fù)載時(shí)一切正常一旦進(jìn)入高負(fù)載運(yùn)算就隨機(jī)重啟查了很久才發(fā)現(xiàn)是電源紋波超標(biāo)導(dǎo)致SoC內(nèi)部邏輯誤觸發(fā)復(fù)位。用示波器測紋波時(shí)測量點(diǎn)要盡量靠近SoC電源引腳不要測在電源模塊輸出端兩者之間的PCB走線阻抗會(huì)造成測量結(jié)果偏差。第二個(gè)坑是DDR的穩(wěn)定性問題。官方套件的DDR參數(shù)已經(jīng)調(diào)好不用動(dòng)。但如果你自己畫板DDR的布線長度匹配和參考平面是決定穩(wěn)定性的關(guān)鍵。很多自研板卡跑Linux沒問題一跑內(nèi)存壓力測試就掛基本都是DDR信號完整性問題。調(diào)試時(shí)可以先降頻比如從1866MHz降到1600MHz跑測試如果降頻后穩(wěn)定說明是高速信號完整性問題而不是芯片本身的問題。第三個(gè)坑是MIPI攝像頭調(diào)試。調(diào)試攝像頭時(shí)如果發(fā)現(xiàn)圖像色彩異常比如偏綠或偏紅先別急著調(diào)算法先檢查ISP的白平衡配置是否與攝像頭模組的sensor型號匹配。V3M的ISP有大量的寄存器配置不同的sensor在色彩矩陣、黑電平、增益上都有差異直接用默認(rèn)配置經(jīng)常會(huì)出現(xiàn)色彩偏色。瑞薩的參考代碼中一般會(huì)帶一兩個(gè)常用sensor的配置比如IMX390或OV10640需要根據(jù)自己實(shí)際使用的sensor進(jìn)行適配。第四個(gè)坑是功能安全相關(guān)的實(shí)時(shí)核開發(fā)。V3M的Cortex-R7核是鎖步運(yùn)行的主要用于執(zhí)行功能安全相關(guān)的任務(wù)比如車輛狀態(tài)監(jiān)控、故障診斷等。這個(gè)核跑的通常是裸機(jī)程序或?qū)S玫腞TOS跟Linux的A53核是完全隔離的。開發(fā)時(shí)要注意A53和R7之間的通信需要通過共享內(nèi)存和Mailbox機(jī)制來實(shí)現(xiàn)不能直接用全局變量跨核訪問。初次接觸異構(gòu)多核開發(fā)的工程師最容易在這里出問題程序編譯都通過一運(yùn)行就異常最后排查下來發(fā)現(xiàn)是核間通信機(jī)制沒用對。6.3 提升開發(fā)效率的幾個(gè)小工具工欲善其事必先利其器。除了官方提供的工具鏈還有幾個(gè)工具能讓開發(fā)效率明顯提升buildroot如果不想搞重量級的Yocto只想快速生成一個(gè)精簡的根文件系統(tǒng)buildroot是很好的選擇。配置簡單、構(gòu)建速度快適合早期原型驗(yàn)證階段使用。crash工具如果遇到內(nèi)核崩潰問題crash配合vmlinux可以分析內(nèi)核轉(zhuǎn)儲(chǔ)文件快速定位崩潰點(diǎn)。車載場景中偶發(fā)性的內(nèi)核崩潰最難排查有了crash工具能省下無數(shù)時(shí)間。trace-cmd用于跟蹤內(nèi)核事件在調(diào)試驅(qū)動(dòng)程序性能問題時(shí)非常有用。比如想確認(rèn)ISP驅(qū)動(dòng)中斷頻率是否正??梢杂胻race-cmd記錄中斷事件分析是否存在異常。7. 一些更深入的建議7.1 從套件到量產(chǎn)注意這幾個(gè)差異用Starter Kit開發(fā)完原型距離量產(chǎn)還有一段路要走。有幾個(gè)差異需要提前規(guī)劃散熱方案是第一個(gè)需要重新考慮的點(diǎn)。開發(fā)板的散熱設(shè)計(jì)比較保守因?yàn)橐WC芯片在長時(shí)間運(yùn)行不降頻測試時(shí)看到的現(xiàn)象和量產(chǎn)的散熱設(shè)計(jì)會(huì)有差異。量產(chǎn)時(shí)如果整機(jī)體積小、散熱條件差可能需要通過軟件策略限制CPU最高頻率或者調(diào)整DVFS表讓SoC在高負(fù)載下不會(huì)快速升溫。存儲(chǔ)方案也需要調(diào)整。開發(fā)板用SD卡是為了方便但量產(chǎn)產(chǎn)品一般會(huì)用eMMC啟動(dòng)速度和可靠性都更好。從SD卡啟動(dòng)切換到eMMC啟動(dòng)時(shí)U-Boot和內(nèi)核的設(shè)備樹需要做相應(yīng)修改啟動(dòng)參數(shù)和分區(qū)表也要重新設(shè)計(jì)。攝像頭模組也需要換。開發(fā)套件上的攝像頭模組通常是評估用的型號量產(chǎn)時(shí)如果換用了不同型號的sensorISP調(diào)試的工作量不容小覷。我見過一個(gè)項(xiàng)目因?yàn)閾Q了sensor整個(gè)圖像調(diào)試就花了兩個(gè)月主要是色彩矩陣、自動(dòng)曝光、自動(dòng)白平衡的參數(shù)都要重新調(diào)。這個(gè)時(shí)間預(yù)算一定要留在項(xiàng)目計(jì)劃里。7.2 從V3M后續(xù)型號遷移的可能性如果你評估之后覺得V3M的性能略有余量但不算太充??梢钥紤]它同系列的R-Car V3H或者新一代產(chǎn)品。瑞薩的R-Car系列在軟件架構(gòu)上保持了較好的兼容性很多驅(qū)動(dòng)程序可以直接沿用這算是用官方套件做開發(fā)的一個(gè)隱藏紅利。另外V3M的后續(xù)產(chǎn)品往往在IMP算力和AI加速能力上有明顯提升如果你的產(chǎn)品規(guī)劃中包含后續(xù)迭代選型時(shí)就要把軟件遷移成本一并考慮進(jìn)去。我個(gè)人在實(shí)際操作中的體會(huì)是做車載視覺開發(fā)工具鏈的成熟度往往比芯片的紙面參數(shù)更重要。V3M這顆SoC的算力在當(dāng)前看來不算頂尖但它的開發(fā)資料齊全、軟件棧完善、社區(qū)案例豐富這些恰恰是實(shí)際項(xiàng)目中最值錢的資源。很多團(tuán)隊(duì)在這類項(xiàng)目上栽跟頭不是芯片性能不行而是低估了軟件生態(tài)的價(jià)值。如果你打算從零開始做車載視覺方案V3M這套Starter Kit絕對值得你先上手試一輪——至少在它的幫助下你踩過的坑會(huì)少很多。