問題1:
[OHOS ERROR] (.text.Reset_Handler+0x2e): undefined reference to `__libc_init_array'
__libc_init_array在startup_stm32f407xx.s中,看字面意思像是對C庫的初始化。
我現在用的是musl的C庫。也可以在startup_stm32f407xx.s中注釋掉相關語句。
/* Call the clock system intitialization function.*/
bl SystemInit
/* Call static constructors */
/* bl __libc_init_array *//* Call the application's entry point.*/
bl main
bx lr
.size Reset_Handler, .-Reset_Handler
hb build之后問題沒有出現。
問題2
[OHOS ERROR] stm32f4xx_hal_rcc.c:(.text.HAL_RCC_GetSysClockFreq+0x34): undefined reference to `__aeabi_uldivmod'[OHOS ERROR] collect2: error: ld returned 1 exit status
__aeabi_uldivmod,網上查資料說跟除法有關。本次我開的是軟除法,沒有開硬件除法。英文用用的musl不支持cortex-m4的除法。因為一下錯誤:
Error: selected FPU does not support instruction -- `vabs.f64 d0,d0'
cortex-m4只支持vabs.f32指令
放棄musl庫,使用gcc標準C庫
問題:XTS移植
[OHOS INFO] The variable 'enable_ohos_test_xts_acts_use_thirdparty_lwip' was set as a build argument[OHOS INFO] but never appeared in a declare_args() block in any buildfile.[OHOS INFO] [OHOS INFO] To view all possible args, run 'gn args --list enable_ohos_test_xts_acts_use_thirdparty_lwip被設置成了編譯參數,但是在編譯文件中沒有出現enable_ohos_test_xts_acts_use_thirdparty_lwip。 根據提示運行: gn args -list out/tunnel_box/tunnel/...build_xts Current value (from the default) = false From //build/config/BUILDCONFIG.gn:255...is_debug Current value (from the default) = false From //build/config/BUILDCONFIG.gn:251 Debug build. Enabling official builds automatically sets is_debug to false. 發現兩個有趣的參數build_xts和is_debug都是false。 根據XTS官網文檔的說法“debug版本編譯時會同步編譯acts測試套件”。所以is_debug應該是ture。 build_xts根據面意思應該也是true。 根據提示位置,找到is_debug和build_xts賦值為true。 declare_args() { # Debug build. Enabling official builds automatically sets is_debug to false. is_debug = true}declare_args() { build_xts = true} 重啟hb build之后,提示 [OHOS INFO] c targets overlap rate statistics [OHOS INFO] subsystem files NO. percentage builds NO. percentage overlap rate [OHOS INFO] kernel 39 19.7% 39 19.7% 1.00 [OHOS INFO] securec 39 19.7% 39 19.7% 1.00 [OHOS INFO] test 2 1.0% 2 1.0% 1.00 [OHOS INFO] third_party 127 64.1% 127 64.1% 1.00 [OHOS INFO] xts 2 1.0% 2 1.0% 1.00 [OHOS INFO] [OHOS INFO] c overall build overlap rate: 1.00 確實有效果,多了一個xts的subsystem。且在out/tunnel_box/tunnel/libs/目錄下libhctest.a文件。與官方說法一致。
上一篇:GCC內置的原子操作函數
下一篇:STM32F103串口DMA+空閑中斷+多級緩沖實現不定長接收
推薦閱讀最新更新時間:2025-05-15 11:30



設計資源 培訓 開發板 精華推薦
- cdsj relay
- 用于 LED 照明的 DC 到 DC 單路輸出電源
- 使用 MCP1631 高速脈寬調制器和 +5.5V 至 +16.0V 輸入的典型應用電路
- AD8532ARMZ-REEL單電源直接接入調制解調器的典型應用
- 用于無線的 2.8 至 5.5V 差分放大器
- NSI45025ZT1G 用于基本交流應用的恒流 LED 驅動器的典型應用
- 使用 ROHM Semiconductor 的 BD45425 的參考設計
- 使用 ON Semiconductor 的 ILC7080 的參考設計
- 使用 ON Semiconductor 的 CS5203A-2G 的參考設計
- OP484ESZ 3V 單電源、50Hz 至 60Hz 有源陷波濾波器和假接地的典型應用
- 瑞薩電子推出全新GaN FET,增強高密度功率轉換能力, 適用于AI數據中心、工業及電源系統應用
- 芯對話 | 芯佰微CBM8605/CBM8606/CBM8608運算放大器 精密信號鏈的核心解決方案
- 物聯網技術促進能量收集創新應用落地
- Proximus Global旗下公司BICS與Epic Malta合作,為2G/3G網絡退役后保障旅行者漫游連接
- 大聯大世平集團推出以NXP產品為核心的HVBMS BJB方案
- 適用于高速應用的先進全局快門圖像傳感器
- Nexperia率先推出適用于48V電動汽車通信網絡的ESD保護二極管
- 消息稱英特爾 CEO 陳立武考慮放棄向新外部客戶推銷 Intel 18A (-P) 工藝
- 曾與諾基亞三星比肩的手機巨頭沒落!LG手機退場
- 特斯拉透露旗下美國內華達州磷酸鐵鋰電池工廠即將投產,使用寧德時代設備