0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

首创ubuntu下cw32l031的vscode+gcc工程创建、下载、调试

华仔的编程随笔 来源: 华仔的编程随笔 作者: 华仔的编程随笔 2023-06-25 21:49 次阅读

目前官方提供CW32L083只提供了MDK、IAR下的固件库、启动文件。我有过成功CW32L083的项目移植的经验,现在成功的把CW32L031的工程移植到ubuntu下面,实现了VSCODE的GCC工程模版。现在将移植的过程与结果分享如下:

  1. CW32L031与CW32L083同属arm-cortex-M0+系列,通对比MDK下的启动汇编程序,发现除flsh与内存大小不同之外,中断、外设基本差不多。因此,我只需要修改。cw32L031、startup_cw32l031_gcc.s、CW32L031_FLASH.ld这三个文件就可以了。
  2. 同时将相关的外设驱动库更换成cw32l031更换过来就实现了工程的移植。
  3. 在ubuntu下面还需要安装wch-link的驱动。

3、移植好后,修改makefile的固件名称、路径就可以实现工程的编译、下载、以及GDB调试。

结果:

  1. 编译:
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、调试:

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]

gdb调试.png

附工程包:

*附件:cw32l030_gcc.zip

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GCC
    GCC
    +关注

    关注

    0

    文章

    104

    浏览量

    24716
  • Ubuntu
    +关注

    关注

    5

    文章

    533

    浏览量

    28845
  • MDK
    MDK
    +关注

    关注

    4

    文章

    208

    浏览量

    31773
  • vscode
    +关注

    关注

    1

    文章

    146

    浏览量

    7376
  • CW32
    +关注

    关注

    1

    文章

    122

    浏览量

    232
收藏 人收藏

    评论

    相关推荐

    创建CW32L083GCC工程模板

    首创武汉芯源CW32L083GCC工程模版,解决官方没有提供的用于linux、macOs下的开发难题。
    的头像 发表于 06-20 09:03 1584次阅读

    CW32 搭建VSCODE+GCC交叉编译环境

    在win10下面创建vscode+gcc开发武汉芯源CW32L系列MCU的编译环境
    的头像 发表于 06-28 17:02 2.4w次阅读
    <b class='flag-5'>CW</b>32 搭建<b class='flag-5'>VSCODE+GCC</b>交叉编译环境

    Ubuntu VSCODE+GCCCW32L031实现printf工程

    CW32L031ubuntu系统下面实现GCC,驱动UART,实现printf工程
    的头像 发表于 06-28 17:07 654次阅读
    【<b class='flag-5'>Ubuntu</b> <b class='flag-5'>VSCODE+GCC</b>】<b class='flag-5'>CW32L031</b>实现printf<b class='flag-5'>工程</b>

    Ubuntu VSCODE+GCCCW32L031实现UART控制LED

    ubuntu系统下面使用vscode 使用串口驱动实现对板载LED灯的控制。
    的头像 发表于 06-28 17:10 536次阅读
    【<b class='flag-5'>Ubuntu</b> <b class='flag-5'>VSCODE+GCC</b>】<b class='flag-5'>CW32L031</b>实现UART控制LED

    Ubuntu VSCODE+GCCCW32L031驱动sht30

    CW32L031ubuntu下面,使用VSCODE+gcc实现对sht30温湿计的驱动
    的头像 发表于 06-28 17:12 2.3w次阅读
    <b class='flag-5'>Ubuntu</b> <b class='flag-5'>VSCODE+GCC</b>】<b class='flag-5'>CW32L031</b>驱动sht30

    武汉芯源CW32L031实现超远距离超低耗无线采集

    武汉芯源的CW32L031实现超低功耗无线温湿度采集,可实现在电池供电下,十年的工作时间。
    的头像 发表于 06-30 16:03 2.2w次阅读
    武汉芯源<b class='flag-5'>CW32L031</b>实现超远距离超低耗无线采集

    【产品介绍】32位低功耗MCU CW32L031系列产品介绍

    Cortex-M0+低功耗MCU CW32L031系列型号展示武汉芯源半导体32位低功耗CW32L031系列集成了主频可达48MHz的ARM Cortex®-M0+ 内核,最大64K字节FLASH
    发表于 09-16 10:30

    N32G031系列GCC开发环境应用笔记分享

    本文以 N32N031 系列 MCU 为例,介绍了在 Windows 环境基于 vscode 编辑器、GCC 编译工具链和 GDB 调试
    发表于 11-02 07:20

    首创CW32L083GCC工程模版

    的启动文件跟LD应该可以相互借鉴。所以偿试修改CW32F030的工程来实现GCC工程。 【实现步骤】 1、拷贝一份工程,另存为
    发表于 06-19 22:17

    ubuntu环境安装wch-link实现固件下载

    到wch-link已经被识别了: lugl@lugl-virtual-machine:~/CW32L/cw32l083_gcc$ pyocd list #Probe/Board Unique IDTarget
    发表于 06-25 20:04

    ubuntu下面用vscdoe实现CW32L031工程创建、编译、下载调试

    目前官方提供CW32L083只提供了MDK、IAR的固件库、启动文件。我有过成功CW32L083的项目移植的经验,现在成功的把CW32L031
    发表于 06-25 21:13

    CW32L031产品介绍

    CW32L031是一款基于eFlash的单芯片低功耗微控制器,集成了ARM®Cortex®-M0+ 核心,主频高达48MHz,高速嵌入式存储器(高达64KB的FLASH和 高达8K字节的SRAM
    发表于 09-14 06:02

    CW32L031微控制器数据手册

    CW32L031 是基于 eFlash 的单芯片低功耗微控制器,集成了主频高达 48MHz 的 ARM® Cortex®-M0+ 内核、高速嵌入式存储器(多至 64K 字节 FLASH 和多至 8K
    发表于 09-14 08:26

    CW32L031用户手册

    CW32L031核心是32位ARM®Cortex®-M0+微处理器,最大寻址空间为4GB。芯片的内置程序存储器、数据存储器、外围设备和端口寄存器是统一的在相同的4GB线性地址空间中寻址。 内存中
    发表于 09-14 07:09

    CW32L031 StartKit软件包

    CW32L031 StartKit 软件包
    发表于 09-15 07:58