目前官方提供CW32L083只提供了MDK、IAR下的固件庫、啟動文件。我有過成功CW32L083的項目移植的經(jīng)驗,現(xiàn)在成功的把CW32L031的工程移植到ubuntu下面,實現(xiàn)了VSCODE的GCC工程模版?,F(xiàn)在將移植的過程與結(jié)果分享如下:
- CW32L031與CW32L083同屬arm-cortex-M0+系列,通對比MDK下的啟動匯編程序,發(fā)現(xiàn)除flsh與內(nèi)存大小不同之外,中斷、外設(shè)基本差不多。因此,我只需要修改。cw32L031、startup_cw32l031_gcc.s、CW32L031_FLASH.ld這三個文件就可以了。
- 同時將相關(guān)的外設(shè)驅(qū)動庫更換成cw32l031更換過來就實現(xiàn)了工程的移植。
- 在ubuntu下面還需要安裝wch-link的驅(qū)動。
3、移植好后,修改makefile的固件名稱、路徑就可以實現(xiàn)工程的編譯、下載、以及GDB調(diào)試。
結(jié)果:
- 編譯:
lugl@lugl-virtual-machine:~/CW32L/cw32l083_gcc$ make
[CC] Core/app/app_main.c
[CC] Core/app/interrupts_cw32l031.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_atim.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_dma.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_digitalsign.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_debug.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_rtc.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_pwr.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_systick.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_i2c.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_wwdt.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_awt.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_uart.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_rcc.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_flash.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_iwdt.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_btim.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_crc.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_lvd.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_gtim.c
[CC] Libraries/CW32L031_StdLib/src/system_cw32l031.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_adc.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_spi.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_vc.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_gpio.c
[CC] Libraries/CW32L031_StdLib/src/cw32l031_ram.c
[AS] Libraries/CMSIS/Device/startup_cw32l031_gcc.s
[LD] build_exec/template.elf
[HEX] build_exec/template.elf - > build_exec/template.hex
[BIN] build_exec/template.elf - > build_exec/template.bin
[DUMP] build_exec/template.elf - > build_exec/template.s
[SIZE] build_exec/template.elf
text data bss dec hex filename
1544 20 1572 3136 c40 build_exec/template.elf
2、下載:
lugl@lugl-virtual-machine:~/CW32L/cw32l083_gcc$ make flash
-e Start pyOCD
0000430 I Loading /home/lugl/CW32L/cw32l083_gcc/build_exec/template.elf [load_cmd]
[==================================================] 100%
3、調(diào)試:
Waiting for gdb server to start...[2023-06-25T13:04:50.107Z] SERVER CONSOLE DEBUG: onBackendConnect: gdb-server session connected. You can switch to "DEBUG CONSOLE" to see GDB interactions.
pyocd gdbserver --port 50000 --telnet-port 50001
0000446 I Target type is cw32l031c8 [board]
0000529 I DP IDR = 0x0bc11477 (v1 MINDP rev0) [dap]
0000557 I AHB-AP#0 IDR = 0x04770031 (AHB-AP var3 rev0) [discovery]
0000580 I AHB-AP#0 Class 0x1 ROM table #0 @ 0xe00ff000 (designer=43b:Arm part=4c0) [rom_table]
0000590 I [0]< e000e000:SCS v6-M class=14 designer=43b:Arm part=008 > [rom_table]
0000595 I [1]< e0001000:DWT v6-M class=14 designer=43b:Arm part=00a > [rom_table]
0000601 I [2]< e0002000:BPU v6-M class=14 designer=43b:Arm part=00b > [rom_table]
0000607 I CPU core #0 is Cortex-M0+ r0p1 [cortex_m]
0000610 I Setting core #0 (Cortex-M0+) default reset sequence to ResetSystem [pack_target]
0000616 I 2 hardware watchpoints [dwt]
0000620 I 4 hardware breakpoints, 0 literal comparators [fpb]
0000635 I Semihost server started on port 50001 (core 0) [server]
0000752 I GDB server started on port 50000 (core 0) [gdbserver]
0000757 I Client connected to port 50000! [gdbserver]
0000883 I Attempting to load RTOS plugins [gdbserver]
[---|---|---|---|---|---|---|---|---|----]
[========================================]
0001608 I Erased 0 bytes (0 sectors), programmed 0 bytes (0 pages), skipped 2048 bytes (4 pages) at 3.44 kB/s [loader]
附工程包:
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
GCC
+關(guān)注
關(guān)注
0文章
105瀏覽量
24804 -
Ubuntu
+關(guān)注
關(guān)注
5文章
559瀏覽量
29503 -
MDK
+關(guān)注
關(guān)注
4文章
208瀏覽量
32009 -
vscode
+關(guān)注
關(guān)注
1文章
154瀏覽量
7654 -
CW32
+關(guān)注
關(guān)注
1文章
174瀏覽量
550
發(fā)布評論請先 登錄
相關(guān)推薦
創(chuàng)建CW32L083GCC工程模板
首創(chuàng)武漢芯源CW32L083GCC工程模版,解決官方?jīng)]有提供的用于linux、macOs下的開發(fā)難題。
【Ubuntu VSCODE+GCC】CW32L031實現(xiàn)printf工程
CW32L031在ubuntu系統(tǒng)下面實現(xiàn)GCC,驅(qū)動UART,實現(xiàn)printf工程
【產(chǎn)品介紹】32位低功耗MCU CW32L031系列產(chǎn)品介紹
Cortex-M0+低功耗MCU CW32L031系列型號展示武漢芯源半導體32位低功耗CW32L031系列集成了主頻可達48MHz的ARM Cortex?-M0+ 內(nèi)核,最大64K字節(jié)FLASH
發(fā)表于 09-16 10:30
首創(chuàng)CW32L083GCC工程模版
的啟動文件跟LD應(yīng)該可以相互借鑒。所以償試修改CW32F030的工程來實現(xiàn)GCC的工程。
【實現(xiàn)步驟】
1、拷貝一份工程,另存為
發(fā)表于 06-19 22:17
ubuntu下面用vscdoe實現(xiàn)CW32L031的工程創(chuàng)建、編譯、下載與調(diào)試
目前官方提供CW32L083只提供了MDK、IAR下的固件庫、啟動文件。我有過成功CW32L083的項目移植的經(jīng)驗,現(xiàn)在成功的把CW32L031的工
發(fā)表于 06-25 21:13
CW32L031產(chǎn)品介紹
CW32L031是一款基于eFlash的單芯片低功耗微控制器,集成了ARM?Cortex?-M0+
核心,主頻高達48MHz,高速嵌入式存儲器(高達64KB的FLASH和
高達8K字節(jié)的SRAM
發(fā)表于 09-14 06:02
CW32L031微控制器數(shù)據(jù)手冊
CW32L031 是基于 eFlash 的單芯片低功耗微控制器,集成了主頻高達 48MHz 的 ARM? Cortex?-M0+ 內(nèi)核、高速嵌入式存儲器(多至 64K 字節(jié) FLASH 和多至 8K
發(fā)表于 09-14 08:26
CW32L031用戶手冊
CW32L031核心是32位ARM?Cortex?-M0+微處理器,最大尋址空間為4GB。芯片的內(nèi)置程序存儲器、數(shù)據(jù)存儲器、外圍設(shè)備和端口寄存器是統(tǒng)一的在相同的4GB線性地址空間中尋址。
內(nèi)存中
發(fā)表于 09-14 07:09
"Linux下使用VSCode,GCC,OpenOCD實現(xiàn)STM32一鍵編譯燒錄調(diào)試(STM32CubeMX篇)"
STM32CubeMX生成工程OpenOCD燒錄json腳本實現(xiàn)一鍵編譯燒錄調(diào)試開發(fā)工具安裝Visual Studio Code與插件Visual Studio Code的安裝和使用參考Linux下使用
發(fā)表于 12-06 09:36
?7次下載
【產(chǎn)品介紹】32位低功耗MCU CW32L031系列產(chǎn)品介紹
Cortex-M0+低功耗MCUCW32L031系列型號展示武漢芯源半導體32位低功耗CW32L031系列集成了主頻可達48MHz的ARMCortex?-M0+內(nèi)核,最大64K字節(jié)FLASH、最大
評論