邊緣端的嵌入式開發(fā)越來越復(fù)雜,不論是技術(shù)加速向多核多架構(gòu)方向發(fā)展,還是不斷復(fù)雜化的產(chǎn)品功能和日益加快的上市速度,都使得嵌入式開發(fā)者的工作比以往任何時(shí)候都更加繁瑣。
與此同時(shí),工程師在多數(shù)情況下仍使用老舊的、為單核、單架構(gòu)環(huán)境而設(shè)計(jì)的工具、中間件和SDK,這些傳統(tǒng)平臺往往無法提供異構(gòu)系統(tǒng)所必需的開放、可擴(kuò)展的接口,給復(fù)雜多核系統(tǒng)設(shè)計(jì)帶來諸多不便。因此,提供系統(tǒng)的可見性和靈活性來適應(yīng)嵌入式開發(fā)成為大勢所趨。
在這樣的背景下,ADI打造并推出了多功能嵌入式軟件開發(fā)環(huán)境CodeFusion Studio,它不僅支持高精度混合信號、超低功耗系統(tǒng)芯片,處理邊緣傳感數(shù)據(jù)的微處理器,還支持多核異構(gòu)的邊緣應(yīng)用處理器。作為一家傳統(tǒng)意義上的硬件芯片廠商,ADI近年越來越重視配套軟件平臺的開發(fā)和布局,這一動向既反映了ADI自身加速軟硬協(xié)同的轉(zhuǎn)型和布局,也反映了行業(yè)需求、開發(fā)模式、商業(yè)模式的深刻變革。
可以說,CodeFusion Studio是ADI深入理解開發(fā)復(fù)雜信號處理鏈路并集成到高級數(shù)字解決方案所面臨的集成挑戰(zhàn),并重新思考了軟件開發(fā)方式后,設(shè)計(jì)出的全新軟件,甚至是ADI涵蓋數(shù)字產(chǎn)品的通用軟件開發(fā)范例。
擴(kuò)展版CodeFusion Studio,助力開發(fā)加速并確保數(shù)據(jù)安全
CodeFusion Studio作為一個(gè)全新的多功能嵌入式軟件開發(fā)環(huán)境,基于Microsoft Visual Studio Code,是ADI首個(gè)完全集成的軟件和安全解決方案套件。它通過采用前沿的集成開發(fā)環(huán)境(IDE)和命令行界面,通過整合開源配置和分析工具來簡化異構(gòu)處理器的開發(fā)工作并提高效率。
近期,ADI又發(fā)布了該方案的擴(kuò)展版本,其中涵蓋的新解決方案旨在助力開發(fā)者提高效率和安全性。新推出的CodeFusion Studio系統(tǒng)規(guī)劃器采用獲得許可的開源架構(gòu),支持在多核平臺上靈活地創(chuàng)建項(xiàng)目,并通過圖形界面直觀地分配內(nèi)存和外設(shè)資源。
CodeFusion Studio主要由三部分組成,包含驅(qū)動、操作系統(tǒng)、中間件在內(nèi)的SDK,基于Visual Studio Code的跨平臺繼承開發(fā)環(huán)境,以及提高生產(chǎn)力的工具組件。值得一提的是,這些工具及多數(shù)關(guān)鍵部件均為開源,用戶可在Apache許可的寬松授權(quán)下自由修改源碼,并在其開發(fā)流程中全面使用。目前,ADI的生態(tài)支持Arm和RISC-V在內(nèi)的架構(gòu),并計(jì)劃進(jìn)一步拓展更多其他的架構(gòu)。通過深入了解系統(tǒng)性能,并利用便捷的開源工具改善資源分配,開發(fā)者將能更有效地優(yōu)化設(shè)計(jì),實(shí)現(xiàn)智能邊緣創(chuàng)新,并加快產(chǎn)品上市。
系統(tǒng)規(guī)劃器還允許開發(fā)者通過基于插件的項(xiàng)目創(chuàng)建系統(tǒng)生成所需的代碼,在確保開發(fā)者享有極大靈活性的同時(shí),還通過整套通用的配置工具來提升開發(fā)效率。針對Zephyr RTOS、ADI SDK等常見固件平臺,該系統(tǒng)預(yù)置了一組插件,客戶不僅能夠開箱即用,還能根據(jù)自身需求,自由復(fù)制和修改這些項(xiàng)目創(chuàng)建和配置插件。插件系統(tǒng)利用了底層的模板引擎,可通過替換特定位置的字符串修改靜態(tài)文件,并利用JavaScript或TypeScript函數(shù)增強(qiáng)代碼生成邏輯。
并且,系統(tǒng)規(guī)劃器提供了圖形化實(shí)用程序來劃分內(nèi)存資源,將分區(qū)分配給單個(gè)或多個(gè)內(nèi)核。此實(shí)用程序旨在幫助客戶生成鏈接腳本或設(shè)備樹內(nèi)存覆蓋文件。外設(shè)模塊也可以通過RTOS感知的配置選項(xiàng),以圖形化方式分配給內(nèi)核。
除了CodeFusion Studio系統(tǒng)規(guī)劃器之外,ADI還宣布對ADI Assure可信邊緣安全架構(gòu)進(jìn)行升級,發(fā)布公司首款數(shù)據(jù)溯源軟件開發(fā)解決方案先行版,旨在為客戶提供貫穿數(shù)據(jù)生命周期的數(shù)據(jù)可信度和可追溯性保障。目前,ADI新推出的數(shù)據(jù)溯源解決方案先行版可為信號鏈數(shù)據(jù)構(gòu)建信任框架,確保智能邊緣端產(chǎn)生的數(shù)據(jù)在整個(gè)系統(tǒng)傳輸中的完整性、真實(shí)性和保真度。
硬件筑基、軟件強(qiáng)化、開源合作——ADI智能邊緣藍(lán)圖浮現(xiàn)
ADI一直以混合信號和數(shù)字信號處理IC聞名,但近年來持續(xù)加碼軟件工具。從技術(shù)視角看,這是否反映了邊緣計(jì)算對“軟硬協(xié)同”的新需求?芯片廠商提供一體化開發(fā)工具對生態(tài)構(gòu)建和客戶粘性有何意義?
ADI軟件與數(shù)字平臺事業(yè)部杰出工程師、CodeFusion Studio軟件架構(gòu)師Kevin Townsend表示,硬件和軟件之間的界限越來越模糊。隨著越來越多的處理工作轉(zhuǎn)移到邊緣端,邊緣硬件獲得了大量的原始數(shù)據(jù),相應(yīng)地也需要更強(qiáng)的處理能力。
如今要解決復(fù)雜問題,需要采集和轉(zhuǎn)換盡可能高質(zhì)量的模擬數(shù)據(jù),同時(shí)也意味著需要通過復(fù)雜的軟件信號鏈進(jìn)一步轉(zhuǎn)換數(shù)據(jù)、過濾數(shù)據(jù)、與其他數(shù)據(jù)源合并、在大量處理內(nèi)核和加速器之間傳輸數(shù)據(jù),以及經(jīng)常通過高度調(diào)整的軟件定義算法和機(jī)器學(xué)習(xí)模型運(yùn)行數(shù)據(jù)。
Kevin Townsend強(qiáng)調(diào),在邊緣端實(shí)現(xiàn)有效決策在很大程度上是一個(gè)軟件問題,這也正是ADI加大投入以實(shí)現(xiàn)優(yōu)異的數(shù)據(jù)處理和轉(zhuǎn)換中間件、工具和能力的原因所在,從而推動智能邊緣創(chuàng)新。為客戶很好地解決這一問題是幫助他們?nèi)〉贸晒Φ年P(guān)鍵,也是ADI作為首選合作伙伴持續(xù)解決客戶最具挑戰(zhàn)性問題的關(guān)鍵。
此外,為進(jìn)一步提高這些工具的采用率,ADI計(jì)劃加強(qiáng)與開源社區(qū)的合作,從而使客戶對其關(guān)鍵軟件基礎(chǔ)架構(gòu)具備更大的自主權(quán)?!斑@使得客戶能夠直接對這些工具產(chǎn)生促進(jìn)和影響,這對于實(shí)現(xiàn)其產(chǎn)品的長期成功至關(guān)重要。這種參與有助于確保軟件得到長期維護(hù)和使用,有時(shí)甚至長達(dá)數(shù)十年”,Kevin Townsend補(bǔ)充。
如何滿足多核異構(gòu)、差異化需求挑戰(zhàn)?
在眾多工程師的開發(fā)經(jīng)歷中,多核異構(gòu)系統(tǒng)常常面臨資源調(diào)度、調(diào)試復(fù)雜性和跨核通信效率等難題。CodeFusion Studio在設(shè)計(jì)時(shí)如何針對這些挑戰(zhàn)提供技術(shù)支持?
Kevin Townsend解釋說,最新發(fā)布的CodeFusion Studio系統(tǒng)規(guī)劃器的最終目的就是要解決嵌入式軟件開發(fā)的復(fù)雜性難題,很多固件工程師并不習(xí)慣在同一設(shè)備中處理多核問題,因此他們會遇到很多挑戰(zhàn)。以一個(gè)多核器件為例,該器件有固定數(shù)量的 SRAM和固定數(shù)量的閃存,芯片上有固定數(shù)量的外設(shè)(可能有2個(gè)UR、3個(gè)I2C、1個(gè)SPI和一定數(shù)量的定時(shí)器),因此必須能夠?qū)⑦@些存儲器和外設(shè)分配給各個(gè)內(nèi)核。比如為Arm Cortex M4F 內(nèi)核分配 256 kB SRAM、512 kB 閃存以及UART2、I2C1 和 SPI3 外設(shè)等,如果有一個(gè)RISC-V內(nèi)核正在使用 Zephyr通信或BLE等其他功能,也是類似的,比如分配128kB RAM、128 kB 閃存、BLE無線、定時(shí)器和UART3。
因此,系統(tǒng)規(guī)劃器提供了圖形化實(shí)用程序來劃分內(nèi)存資源,將分區(qū)分配給單個(gè)或多個(gè)內(nèi)核,可以避免在分配和配置內(nèi)核時(shí)可能出現(xiàn)的大量錯(cuò)誤。
“這就是為什么我們推出的基于插件架構(gòu)如此重要的原因所在,因?yàn)楫?dāng)開始為單個(gè)內(nèi)核分配資源時(shí),比如將BLE無線中的UART2分配給RISC-V內(nèi)核,這些插件使代碼生成能夠感知在該內(nèi)核上運(yùn)行的是何種RTOS。當(dāng)為分配的內(nèi)存、UART和外設(shè)生成初始化代碼時(shí),可能RISC-V上運(yùn)行的是免費(fèi)RTOS,而在Arm內(nèi)核上運(yùn)行的是Zephyr,這些插件能夠?yàn)橐粋€(gè)內(nèi)核生成Zephyr 初始化代碼,為第二個(gè)內(nèi)核生成免費(fèi)RTOS 初始化代碼”,Kevin Townsend結(jié)合具體場景詳細(xì)介紹了CodeFusion Studio的優(yōu)勢,“如此一來,各個(gè)軟件團(tuán)隊(duì)就可以自行選擇運(yùn)行不同的調(diào)度程序,并在每個(gè)內(nèi)核上使用不同的中間件,而系統(tǒng)規(guī)劃器作為一種工具,與插件架構(gòu)相結(jié)合,就能靈活地處理這些復(fù)雜的軟件環(huán)境?!?/p>
為了滿足不同經(jīng)驗(yàn)水平的開發(fā)者需求,CodeFusion Studio提供了一系列差異化工具,例如針對初級開發(fā)人員提供易于使用的工具,為經(jīng)驗(yàn)豐富的開發(fā)者提供更為先進(jìn)的工具(如 ELF文件資源管理器和高級調(diào)試工具等)。
寫在最后
開放、可擴(kuò)展、擁有強(qiáng)大的生態(tài)系統(tǒng)、多核、以及集成模擬和數(shù)字——正在成為嵌入式計(jì)算的發(fā)展方向。
在助力開發(fā)者迎接多核未來的道路上,ADI已經(jīng)看到了開放式工具、SDK和中間件的重要性,并且在不斷改進(jìn)工具的靈活性、實(shí)用性,通過對工具和示例代碼等關(guān)鍵資源采取開源優(yōu)先的原則,能夠使客戶能夠更好地利用現(xiàn)有資產(chǎn)定制設(shè)計(jì)以滿足產(chǎn)品的特定需求,也能夠使工程師能夠?qū)⒏嗑ν度氲讲町惢到y(tǒng)設(shè)計(jì)中,這對于ADI未來在智能邊緣增強(qiáng)客戶粘性、強(qiáng)化生態(tài)建設(shè)將會起到關(guān)鍵作用。
未來,一個(gè)明顯的趨勢是,由于人工智能和機(jī)器學(xué)習(xí)等技術(shù)的出現(xiàn),越來越多的計(jì)算、處理正在邊緣發(fā)生。在今年的Embedded World展會上,ADI展示了在 AI/ML 領(lǐng)域開發(fā)的相關(guān)工具,以及如何將機(jī)器學(xué)習(xí)模型輕松集成到客戶軟件工作流中的能力。這也正在成為ADI大力投資的新方向,通過提供創(chuàng)新方案,推動智能邊緣的持續(xù)發(fā)展。