為 ZephyrRTOS 增加 SoC 支持(2) 基礎框架 N32L406 的移植還沒有完成,最近又開坑做思澈 SF32LB58 的移植。原因一是這個芯片帶藍牙和 2D GPU,適合做一些低功耗顯示的設備,比如碼表,導航設備,以及智能眼鏡之類,我覺得挺有意思;另一個原因是思澈的老板也愿意支持開源,說很多芯片寄存器功能愿意開發給社區,特別是包括藍牙的接口也愿意“以后”開放給社區對接 ZephyrRTOS 的藍牙協議棧,所以我覺得還是可以嘗試做一下。還有一個原因是他們說是愿意提供給社區開發者提供一些資金支持,但是目前看他們討論的情況,這個資金支持倒也不能抱太大期待。先用愛發電吧。思澈的資料都可以從官方 wiki: https://wiki.sifli.com/index.html 這里下載。我先基于官方倉庫https://github.com/OpenSiFli/zephyr提供的一個移植倉庫開始的,但是因為代碼組織和依賴的關系,我重新組織新建了倉庫:manifest repo: https://github.com/iotpi/sifli-porting-templatehal module: https://github.com/iotpi/hal_sifli,主要包含芯片的 baremetal 驅動。zephyr porting: https://github.com/iotpi/sifli_zephyr,這一倉庫預期是以后可以合并到 zephyr upstream,但是工作量還是很巨大,遙遙無期另外還有一個朋友完全基于官方的倉庫繼續修改的組織架構,放在他自己的倉庫下:https://github.com/ck-telecom/zephyr-SiFli,有興趣的朋友也可以圍觀。1. 芯片架構
這個芯片架構還有點復雜,有三個核,分別是 HCPU, ACPU和LCPU。其中 LCPU 一般用心跑藍牙協議棧。藍牙協議棧還是閉源的。這里 HCPU 和 ACPU 合起來組成了 HPSYS,LCPU單獨組成 LPSYS。2. 設備樹(devicetree, dts)我看了 nxp 和 nordic 對于多核 MCU 架構的dts定義方式,是把所有的核定義在了一個基礎 dtsi里,然后在特定的核的 dtsi 定義里再 /delete-node/ 移除掉。我現在并不明白他們為什么要這么使用,問了 zephyr 的專家,也并不確定。所以目前我使用了我自己認為更適合的方式去組織,如果后面遇到了新問題,再考慮修改這個結構。鑒于上面的芯片功能框圖,我定義基礎的 dts 文件:sf32lb58.dtsi,用于定義整個 SoC 共用的外設;
?sf32lb58_hpsys.dtsi,定義 HCPU 和 ACPU 共用的 外設(內存);
sf32lb58_hcpu.dtsi,僅供 HCPU 訪問的CPU及內存;
sf32lb58_acpu.dtsi,僅供 ACPU 訪問的CPU及內存;
sf32lb58_lpsys.dtsi,定義 LPSYS 訪問的設備與內存;
sf32lb58_lcpu.dtsi,定義 LCPU 相關的CPU和內存。
sf32lb586.dtsi:定義 具體 sf32lb586 特定的配置,應該主要是 合封的PSRAM 和 FLASH 的配置。sf32lb586_hcpu.dtsi:這個文件應該由板級 dts 定義包含的頭文件
同樣還要定義sf32lb586_acpu.dtsi, sf32lb586_lcpu.dtsi注意,上面的截圖都只作為參考,最終編譯有問題或者別的架構原因,上面的內容還是會變更。下期繼續填坑。文章里如果出現錯誤,或者您有什么建議,歡迎留言指正!感謝!








聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
藍牙
+關注
關注
116文章
6062瀏覽量
173725 -
移植
+關注
關注
1文章
397瀏覽量
28657 -
RTOS
+關注
關注
24文章
847瀏覽量
121018
發布評論請先 登錄
相關推薦
熱點推薦
LB/LMB/MB/HB 分集接收模塊 skyworksinc
/HB 分集接收模塊真值表,LB/LMB/MB/HB 分集接收模塊管腳等資料,希望可以幫助到廣大的電子工程師們。
發表于 05-16 18:32

Sky5? LB / MB / HB 分集接收模塊 skyworksinc
,Sky5? LB / MB / HB 分集接收模塊真值表,Sky5? LB / MB / HB 分集接收模塊管腳等資料,希望可以幫助到廣大的電子工程師們。
發表于 05-15 18:33

Sky5? LB/MBV/HB 分集接收模塊 skyworksinc
? LB/MBV/HB 分集接收模塊真值表,Sky5? LB/MBV/HB 分集接收模塊管腳等資料,希望可以幫助到廣大的電子工程師們。
發表于 05-12 18:32

UHV-615全自動SF6密度繼電器校驗儀操作使用
SF6開關是電力系統廣泛使用的高壓電器SF6開關的可靠運行已成為供用電部門最關心的問題之一。SF6氣體密度繼電器是用來監測運行中SF6開關本
發表于 05-09 17:48
?0次下載
Sky5? LB/MLB/MB/HB 分集接收模塊 skyworksinc
,Sky5? LB/MLB/MB/HB 分集接收模塊真值表,Sky5? LB/MLB/MB/HB 分集接收模塊管腳等資料,希望可以幫助到廣大的電子工程師們。
發表于 05-07 18:31

Sky5? LB/MB/HB 分集接收模塊 skyworksinc
? LB/MB/HB 分集接收模塊真值表,Sky5? LB/MB/HB 分集接收模塊管腳等資料,希望可以幫助到廣大的電子工程師們。
發表于 04-11 18:34

Sky5? LB/MB/HB LNA Bank 模塊 skyworksinc
資料,Sky5? LB/MB/HB LNA Bank 模塊真值表,Sky5? LB/MB/HB LNA Bank 模塊管腳等資料,希望可以幫助到廣大的電子工程師們。
發表于 04-11 18:31

LB9-110W2(LB9-126W2)電流互感器
LB9-110W2(LB9-126W2)電流互感器供60~145KV、50~60Hz 電力系統作電流、電能測量及繼電保護用
產品概述 該系列電流互感器包括LB-60W2、LB
發表于 04-01 10:36
如何將RT-Thread移植到NXP MCUXPressoIDE上
RT-Thread默認支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE上呢?本文內容比較簡單但稍有瑣碎,希望對有需要的小伙伴有所幫助。

【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列
對比、外設及性能對比以及從 STM32F10x 移植到 GD32F30x 的移植步驟,旨在讓開發者能夠快速從STM32F10x 移植到 GD

【GD32 MCU 移植教程】5、GD32E230 系列移植到 GD32F330 系列
移植到 GD32F330 系列的需求,本文
檔專門針對既有的 GD32E230 代碼如何移植到 GD32F330 做一個詳細的介紹;

【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503
GD32E503 系列是 GD 推出的 Cortex_M33 系列產品,該系列資源上與 GD32F303 兼容度非常高,本應用筆記旨在幫助您快速將應用程序從 GD32F303 系列微控制器移植到 GD32E503 系列微控制器。

SF6泄漏在線監測報警系統在10kV到1000kV高壓開關室中的應用
當使用以SF6氣體為絕緣和滅弧介質的室內開關在使用過程中發生泄漏時,泄漏出來的SF6氣體及其分解產物會往室內低層空間積聚,造成局部缺氧和帶毒. SF6泄漏在線監測報警系統室時監測環境中

【GD32 MCU 移植教程】1、從 GD32F10x 移植到 GD32F30x
應用程序移植到新的微控制器。本應用筆記旨在幫助您快速將應用程序從 GD32F10x 系列微控制器移植到 GD32F30x 系列微控制器。

評論