![]() |
發布時間: 2023-4-4 14:32
正文摘要:最近整了個arm內核的py32f002a玩,但按照給的官方文件卻在keil里報錯。以前只玩過8位,沒玩過32位。錯誤代碼: uint32_t VECT_SRAM_TAB[48]__attribute__((section(".ARM.__at_0x20000000"))); 這行 ... |
明日之星8 發表于 2024-3-18 21:55 沒用匯編說明你的修行還不到家。 |
我最近在玩XL32F001,我只用py32f002bx5.h這一個頭文件,注意前面沒有“system_”, 另加“core_cm”開頭的三個內核頭文件,其它的都是“庫”開發有關的,我不玩“庫”。 簡簡單單點個燈都要長長一大篇,我直接操作寄存器只要三五句就點亮了。 |
uint32_t VECT_SRAM_TAB[48]__attribute__((section(".RW_IRAM1.__at_0x20000000"))); 出錯代碼替換成上邊的代碼試試,我的問題這樣解決的。 |
這個應該是分散加載文件中的分段對應不上。把ARM替換成RW_IRAM1就可以了。即uint32_t VECT_SRAM_TAB[48]__attribute__((section(".RW_IRAM1.__at_0x20000000")));//((section(".ARM.__at_0x20000000"))); |
可能缺了#define具體單片機型號這一句,也可以在項目工程文件里面define。 |
我剛好碰到這個問題,不過我用的是002B,我用了system_py32f002b.c替代了system_py32f0xx.c就正常了。f0xx.c可能針對的是所有型號,不同型號可能要改下參數。你可以去找個system_py32f002a.c或者就用002b.c就可以了。 |