為 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注意,上面的截圖都只作為參考,最終編譯有問題或者別的架構原因,上面的內容還是會變更。下期繼續填坑。文章里如果出現錯誤,或者您有什么建議,歡迎留言指正!感謝!
這個芯片架構還有點復雜,有三個核,分別是 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注意,上面的截圖都只作為參考,最終編譯有問題或者別的架構原因,上面的內容還是會變更。下期繼續填坑。文章里如果出現錯誤,或者您有什么建議,歡迎留言指正!感謝!
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
藍牙
+關注
關注
119文章
6241瀏覽量
177764 -
移植
+關注
關注
1文章
408瀏覽量
29242 -
RTOS
+關注
關注
25文章
863瀏覽量
122662
發布評論請先 登錄
相關推薦
熱點推薦
友思特應用 | 增材制造中的高精度過程監控與誤差
PBF-LB/M 增材制造中,阿倫大學激光應用中心采用 iDS 的兩款 USB3 工業相機(分別負責動態過程高速捕捉與靜態層高分辨率檢測)構建視覺檢測系統,既為工藝參數優化提供關鍵數據,也成功應用于
對 AN65974 項目中 SF_streamIN.img 和 SF_streamOUT.img 的使用有疑問,求解答
PC。
為了實現這一點,我假設我需要使用 Bulk OUT 端點(0x01),如 SF_streamOUT.img 中所示。
我的問題是
SF
發表于 08-15 08:17
移植 ZephyrRTOS 到思澈 SF32LB58 過程筆記之二 建立板級定義
ZephyrRTOS 的編譯,是從指定板子 (board) 標識符開始的。所以為了編譯測試我們的定義和代碼,就必須先定義對應的板子。目前我這里使用的是 SF32LB58 devkit開發板,所以
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
Sky5? LB/LMB/MB/HB 和 4x4 MIMO 分集接收模塊 skyworksinc
的引腳圖、接線圖、封裝手冊、中文資料、英文資料,Sky5? LB/LMB/MB/HB 和 4x4 MIMO 分集接收模塊真值表,Sky5? LB/LMB/MB/HB 和 4x4 MIMO 分集接收模塊管腳等資料,希望可以幫助到廣
發表于 04-11 15:21
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上呢?本文內容比較簡單但稍有瑣碎,希望對有需要的小伙伴有所幫助。

移植 ZephyrRTOS 到思澈 SF32LB58 過程筆記 一
評論