Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
openocd
RT-Thread一般讨论
sdk-bsp-gd32vf103v-eval提交记录(一)
发布于 2022-04-30 23:10:05 浏览:888
订阅该版
[tocm] 上一次做了ch32v103r-evt的sdk-bsp,[CH32V103R-EVT RT-Thread Studio开发板支持包制作](https://club.rt-thread.org/ask/article/927d249dba33010e.html) 这次把gd32v103v-eval的sdk-bsp做了,和上次一样我打算从rtthread源码的gd32v103v-eval bsp直接导入,然后调整。 由于涉及的gcc 和debug工具不是现成的,加上源码部分需要优化,大概分三篇介绍: 1. gd32vf103v-eval 在rtthread studio可编译的demo 工程,gcc和openocd测试 2. PR nuclei gcc , nuclei openocd 和 sdk-bsp-gd32vf103v-eval(v1.0.0版本) 3. 优化源码部分,提供jlink调试配置(v1.0.1版本) # 1 准备 ## 1.1 rtthread v4.1.0(latest) ```shell $ git ck v4.1.0 Note: switching to 'v4.1.0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c
Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 4f5d1b0ce [update] ChangeLog for RT-Thread_v4.1.0 (#5735) LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread ((v4.1.0)) ``` > 只是临时用一下,就直接切换到HEAD,不建分支了 ## 1.2 参考资料 [官方开发板资源包制作指导](https://www.rt-thread.org/document/site/#/development-tools/rtthread-studio/um/studio-user-manual?id=%e5%bc%80%e5%8f%91%e6%9d%bf%e8%b5%84%e6%ba%90%e5%8c%85%e5%88%b6%e4%bd%9c) # 2 导入BSP工程 ## 2.1 从RT-Thread Bsp到工作空间  ## 2.2 创建gd32vf103v-eval-demo 基于bsp创建gd32vf103v-eval-demo 工程,该工程作为后面做sdk-bsp的基础 。  很顺利,没有报错  # 3 调整配置 ## 3.1 配置工具链  ## 3.2 同步scons配置到项目 现在工程src, include ,group基本都是错了,包含了很多不该包含的文件,或者找不到文件,需要借助scons 快速生成正确的配置。 ### 3.2.1 先重配 target 该步骤可以省略。 基于GD32VF103XB target新建Debug target,并把GD32VF103XB删除  ### 3.2.2 配置projcfg.ini .setting /projcfg.ini ``` #RT-Thread Studio Project Configuration #Sat Apr 30 19:54:19 CST 2022 cfg_version=v3.0 board_name=gd32vf103v-eval example_name= hardware_adapter=J-Link project_type=rt-thread board_base_nano_proj=false chip_name=GD32VF103VBT6 selected_rtt_version=latest bsp_version=1.0.0 os_branch=4.1.0 project_base_rtt_bsp=true output_project_path=E\:WorkSpacesRT_Thread_Studiogd32vf103v-eval-demo is_base_example_project=false is_use_scons_build=true project_name=gd32vf103v-eval-demo os_version=4.1.0 bsp_path= ``` ### 3.2.3 同步scons配置至项目 然后右击选择`同步scons配置至项目`  打开配置发现已自动更新了include and src, 手动删除上面的错误路径(GUN C ,assembly include)  编译测试一下,  很不幸scons对scr 过滤部分未生效  估计是没有添加一个工程文件夹,scons更新失败,经探索按照下面步骤可解决: 1)手动添加一个排除构建  > 关于make clean 失败问题,当你编译通过后,再次清理这个问题就不存在! > >  > > 当前可以配置成make clean2 提前避免,这个目标在./makefile.targets中定义 > >  > > 2)再次同步scons配置到项目 3)刷新项目  再次编译  这个是汇编头文件include位置有问题,添加汇编头文件位置  ## 3.3 libc头文件问题 解决完include , exclude 配置后,再次编译出现下面问题  这个问题很奇怪,当前工程env下已经能编译了,头文件索引应该没问题了。  通过追踪调用关系,发现stdio.h的61行使用`#include
`本意是想包含gcc工具链下的sys/select.h 文件 但是studio ide错误地去包含rt-thread/components/libc/compilers/newlib/legacy/_select/sys/select.h  rt-thread/components/libc/compilers/newlib/legacy/_select是一个include路径,该路径下正好有个sys/select.h,IDE就包含进来了 **这像是一个IDE的bug,
应该先在gcc工具链下查找,没发现再从本地Include路径里查找。** 工程里搜索一下select.h,发现都是`#include
`  可以直接把rt-thread/components/libc/compilers/newlib/legacy/_select/sys/select.h这个文件删了,再次编译顺利通过。  # 4 OpenOCD下载debug 工程已经编译过了,下面就是下载测试一下。gd32vf103v-eval自带了一个gd-link,我在NucleiStudio IDE中借助Nuclei OpenOCD已经可以下载debug了 不幸的是当前RT-Thread Studio SDK里并没有Nuclei OpenOCD  ## 4.1 PyOCD 这个我试过了,提示不识别这个芯片,目前还不支持gd32vf103v ## 4.2 OpenOCD OpenOCD本质差不多,就是各家可能做了更改,不兼容了。其实我们只需要一个RT-Thread Studio提供一个OpenOCD的配置界面。 下面开始曲线救国 ### 4.2.1 参考 先楫HPM6750-HPMirco 下载HPM6750-HPMirco-EVKMINI 和 OpenOCD-HPMicro  然后新建一个参考工程**HPM_blink-led** ### 4.2.2 hardware_adapter 查看`.setting/projcft.ini` 里 `hardware_adapter`字段属性值微`FT2232`  更改gd32vf103v-eval-demo工程的 .setting/projcft.ini 的hardware_adapter 字段为 FT2232 ### 4.2.3 OpenOCD.Debug.rttlaunch 拷贝 `HPM_blink-led/.setting/HPM_blink_led.OpenOCD.Debug.rttlaunch` 到 `gd32vf103v-eval-demo/.setting/`下 并重命名为`gd32vf103v-eval-demo.OpenOCD.Debug.rttlaunch` 却发现无法打开,但我之前做了一个版本是没问题的。**最后发现工程名不能太长,太坑了。**  把工程重命名为gd32vf103-eval ,可以打开OpenOCD配置界面  ## 4.3 配置OpenOCD 参考NucleiStudio IDE中OpenOCD,调整debugger界面如下  ## 4.4 openocd_gd32vf103.cfg 按配置,拷贝nuclei_sdk/SoC/gd32vf103/Board/gd32vf103v_eval/openocd_gd32vf103.cfg到工程更目录下 ## 4.5 愉快地下载debug  断点复位测试正常  MSH正常 ``` \ | / - RT - Thread Operating System / | \ 4.1.0 build Apr 30 2022 22:32:59 2006 - 2022 Copyright by RT-Thread team msh >ps thread pri status sp stack size max used left tick error -------- --- ------- ---------- ---------- ------ ---------- --- tshell 20 running 0x00000140 0x00001000 16% 0x00000008 000 tidle0 31 ready 0x000000b0 0x00000100 68% 0x00000019 000 timer 4 suspend 0x000000c0 0x00000200 37% 0x00000009 000 msh > ``` **第一部分Demo工程大功告成**
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
blta
这家伙很懒,什么也没写!
文章
12
回答
9
被采纳
2
关注TA
发私信
相关文章
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
9
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部