RT-Thread 7. RT-Thread Studio ENV修改MCU型号

news2025/1/12 7:56:03
1. 修改MCU型号

在这里插入图片描述
在这里插入图片描述

2.在ENV界面输入
scons -c
scons --dist
3. dist下为更新后完整源代码

在这里插入图片描述

4.导入RT-Thread Studio

发现GD32F330已经生效了。

在这里插入图片描述

5. 自己编写startup_gd32f3x0.S,准确性待验证
;/*
; * Copyright (c) 2006-2021, RT-Thread Development Team
; *
; * SPDX-License-Identifier: Apache-2.0
; *
; * Change Logs:
; * Date           Author       Notes
; * 2018-05-22     tanek        first implementation
; */

.syntax unified
.cpu cortex-m4
.fpu softvfp
.thumb

.global  g_pfnVectors
.global  Default_Handler

    .section  .isr_vector,"a",%progbits
    .type  g_pfnVectors, %object

g_pfnVectors:
    .word     _estack                       // Top of Stack
    .word     Reset_Handler                     // Reset Handler
    .word     NMI_Handler                       // NMI Handler
    .word     HardFault_Handler                 // Hard Fault Handler
    .word     MemManage_Handler                 // MPU Fault Handler
    .word     BusFault_Handler                  // Bus Fault Handler
    .word     UsageFault_Handler                // Usage Fault Handler
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     SVC_Handler                       // SVCall Handler
    .word     DebugMon_Handler                  // Debug Monitor Handler
    .word     0                                 // Reserved
    .word     PendSV_Handler                    // PendSV Handler
    .word     SysTick_Handler                   // SysTick Handler

    // external interrupts handler
    .word     WWDGT_IRQHandler                  // 16:Window Watchdog Timer
    .word     LVD_IRQHandler                    // 17:LVD through EXTI Line detect
    .word     RTC_IRQHandler                    // 18:RTC Wakeup through EXTI Line
    .word     FMC_IRQHandler                    // 19:FMC
    .word     RCU_CTC_IRQHandler                // 20:RCU and CTC
    .word     EXTI0_1_IRQHandler                // 21:EXTI Line 0 and EXTI Line 1
    .word     EXTI2_3_IRQHandler                // 22:EXTI Line 2 and EXTI Line 3
    .word     EXTI4_15_IRQHandler               // 23:EXTI Line 4 to EXTI Line 15
    .word     TSI_IRQHandler                    // 24:TSI
    .word     DMA_Channel0_IRQHandler           // 25:DMA Channel 0 
    .word     DMA_Channel1_2_IRQHandler         // 26:DMA Channel 1 and DMA Channel 2
    .word     DMA_Channel3_4_IRQHandler         // 27:DMA Channel 3 and DMA Channel 4
    .word     ADC_CMP_IRQHandler                // 28:ADC and Comparator 0-1
    .word     TIMER0_BRK_UP_TRG_COM_IRQHandler  // 29:TIMER0 Break,Update,Trigger and Commutation
    .word     TIMER0_Channel_IRQHandler         // 30:TIMER0 Channel Capture Compare
    .word     TIMER1_IRQHandler                 // 31:TIMER1
    .word     TIMER2_IRQHandler                 // 32:TIMER2
    .word     TIMER5_DAC_IRQHandler             // 33:TIMER5 and DAC
    .word     0                                 // Reserved
    .word     TIMER13_IRQHandler                // 35:TIMER13
    .word     TIMER14_IRQHandler                // 36:TIMER14
    .word     TIMER15_IRQHandler                // 37:TIMER15
    .word     TIMER16_IRQHandler                // 38:TIMER16
    .word     I2C0_EV_IRQHandler                // 39:I2C0 Event
    .word     I2C1_EV_IRQHandler                // 40:I2C1 Event
    .word     SPI0_IRQHandler                   // 41:SPI0
    .word     SPI1_IRQHandler                   // 42:SPI1
    .word     USART0_IRQHandler                 // 43:USART0
    .word     USART1_IRQHandler                 // 44:USART1
    .word     0                                 // Reserved
    .word     CEC_IRQHandler                    // 46:CEC
    .word     0                                 // Reserved
    .word     I2C0_ER_IRQHandler                // 48:I2C0 Error
    .word     0                                 // Reserved
    .word     I2C1_ER_IRQHandler                // 50:I2C1 Error
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     USBFS_WKUP_IRQHandler             // 58:USBFS Wakeup
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     DMA_Channel5_6_IRQHandler         // 64:DMA Channel5 and Channel6 
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     0                                 // Reserved
    .word     USBFS_IRQHandler                  // 83:USBFS

    .size  g_pfnVectors, .-g_pfnVectors

    .section  .text.Reset_Handler
    .weak  Reset_Handler
    .type  Reset_Handler, %function
Reset_Handler:
    ldr r1, =_sidata
    ldr r2, =_sdata
    ldr r3, =_edata

    subs r3, r2
    ble fill_bss_start

loop_copy_data:
    subs r3, #4
    ldr r0, [r1,r3]
    str r0, [r2,r3]
    bgt loop_copy_data

fill_bss_start:
    ldr r1, =__bss_start
    ldr r2, =__bss_end
    movs r0, 0
    subs r2, r1
    ble startup_enter

loop_fill_bss:
    subs r2, #4
    str r0, [r1, r2]
    bgt loop_fill_bss

startup_enter:
    bl SystemInit
    bl entry

    /* Exception Handlers */
    .weak   NMI_Handler
    .type   NMI_Handler, %function
NMI_Handler:
    b       .
    .size   NMI_Handler, . - NMI_Handler

    .weak   MemManage_Handler
    .type   MemManage_Handler, %function
MemManage_Handler:
    b       .
    .size   MemManage_Handler, . - MemManage_Handler

    .weak   BusFault_Handler
    .type   BusFault_Handler, %function
BusFault_Handler:
    b       .
    .size   BusFault_Handler, . - BusFault_Handler

    .weak   UsageFault_Handler
    .type   UsageFault_Handler, %function
UsageFault_Handler:
    b       .
    .size   UsageFault_Handler, . - UsageFault_Handler

    .weak   SVC_Handler
    .type   SVC_Handler, %function
SVC_Handler:
    b       .
    .size   SVC_Handler, . - SVC_Handler

    .weak   DebugMon_Handler
    .type   DebugMon_Handler, %function
DebugMon_Handler:
    b       .
    .size   DebugMon_Handler, . - DebugMon_Handler

    .weak   PendSV_Handler
    .type   PendSV_Handler, %function
PendSV_Handler:
    b       .
    .size   PendSV_Handler, . - PendSV_Handler

    .weak   SysTick_Handler
    .type   SysTick_Handler, %function
SysTick_Handler:
    b       .
    .size   SysTick_Handler, . - SysTick_Handler

    /* IQR Handler */
    .section  .text.Default_Handler,"ax",%progbits
    .type  Default_Handler, %function
Default_Handler:
    b  .
    .size  Default_Handler, . - Default_Handler

    .macro  IRQ handler
    .weak   \handler
    .set    \handler, Default_Handler
    .endm

    IRQ WWDGT_IRQHandler
    IRQ LVD_IRQHandler
    IRQ RTC_IRQHandler
    IRQ FMC_IRQHandler
    IRQ RCU_CTC_IRQHandler
    IRQ  EXTI0_1_IRQHandler                
    IRQ  EXTI2_3_IRQHandler                
    IRQ  EXTI4_15_IRQHandler               
    IRQ  TSI_IRQHandler                    
    IRQ  DMA_Channel0_IRQHandler           
    IRQ  DMA_Channel1_2_IRQHandler         
    IRQ  DMA_Channel3_4_IRQHandler         
    IRQ  ADC_CMP_IRQHandler                
    IRQ  TIMER0_BRK_UP_TRG_COM_IRQHandler  
    IRQ  TIMER0_Channel_IRQHandler         
    IRQ  TIMER1_IRQHandler                 
    IRQ  TIMER2_IRQHandler                 
    IRQ  TIMER5_DAC_IRQHandler             
    IRQ  TIMER13_IRQHandler                
    IRQ  TIMER14_IRQHandler                
    IRQ  TIMER15_IRQHandler                
    IRQ  TIMER16_IRQHandler                
    IRQ  I2C0_EV_IRQHandler                
    IRQ  I2C1_EV_IRQHandler                
    IRQ  SPI0_IRQHandler                   
    IRQ  SPI1_IRQHandler                   
    IRQ  USART0_IRQHandler                 
    IRQ  USART1_IRQHandler                 
    IRQ  CEC_IRQHandler                    
    IRQ  I2C0_ER_IRQHandler                
    IRQ  I2C1_ER_IRQHandler                
    IRQ  USBFS_WKUP_IRQHandler             
    IRQ  DMA_Channel5_6_IRQHandler         
    IRQ  USBFS_IRQHandler                  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1137444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue组件样式设置,解决样式冲突问题

如果我们在不同的组件内,使用相同的类名,就会发生样式的冲突,使用后引入的组件中的样式: 一、scoped属性 在一个组件的style标签上添加scoped属性,该组件的所有样式都是该组件独有的,即使其他组件中有相同…

详解傅立叶变换,看这一文足矣!

从听到傅立叶变换这个名词后到现在已经四年了,这次终于对傅立叶变换有了一个基本的初步了解。记录一下,这个傅立叶变换也同时记录了我本科到研究生的四年,一路以来跌跌撞撞,没想到最后还是入了图像的坑 数字图像处理——傅立叶变换…

freeRTOS内部机制——创建任务的内部细节

创建任务的两个核心:栈和任务结构体 函数运行过程中的局部变量保存在哪里?他自己的栈中 任务被切换过后,在切换的瞬间,哪些寄存器的值保存在哪里?保存在任务结构体中 在任务创建函数中,会malloc动态分配…

【Javascript】函数隐藏参数ar

function test(a,b,c){console.log(abc);}test(1,2,3);这里的形参有三个分别是a,b,c分别对应实参1,2,3 假如在调用函数的时候多传入几个实参会怎么样? function test(a,b,c){console.log(arguments);console.log(a…

吃瓜教程3|决策树

ID3算法 假定当前样本集合D中第k类样本所占比例为pk,则样本集合D的信息熵定义为 信息增益 C4.5算法 ID3算法存在一个问题,就是偏向于取值数目较多的属性,因此C4.5算法使用了“增益率”(gain ratio)来选择划分属性 CA…

第四章 文件管理 六、文件的基本操作

目录 一、创建文件(create系统调用) 1、进行Create系统调用时,需要提供的几个主要参数: 2、操作系统在处理Create系统调用时,主要做了两件事: 二、删除文件(delete系统调用) 1、进行Delete系统调用时,需要提供的几个主要参数: 2、操作系…

【20年VIO梳理】

19-20年VIO 梳理 1. 开源代码介绍: DSM2. FMD Stereo SLAM:融合MVG和直接方法,实现准确,快速的双目SLAM3. 基于VINS-Mono开发的SPVIS4. 改进:一种基于光流的动态环境移动机器人定位方案5. PVIO:基于先验平面约束的高效…

第四章 文件管理 五、文件存储空间管理

目录 一、逻辑结构和物理结构的比较 二、空闲表法 1、磁盘中的空闲块表 2、例子 3、如何回收空闲区间 ①回收区的前后都没有相邻空闲区; ②回收区的前后都是空闲区; ③回收区前面是空闲区; ④回收区后面是空闲区; 三、空闲链表法 1、分类 2、空闲盘块链 &#xff…

【顺序栈的表示和实现,顺序栈的初始化,是否为空,清空顺序栈,销毁顺序栈,】

文章目录 一、栈和队列的定义和特点1.1顺序栈的表示和实现1.2顺序栈的基本操作1.2.1顺序栈的初始化1.2.2判断顺序栈是否为空1.2.3清空顺序栈1.2.4销毁顺序栈1.2.5顺序栈的入栈 一、栈和队列的定义和特点 栈和队列是限定插入和删除只能在表的“端点”进行的线性表。 栈是先进后…

【Linux】安装与配置虚拟机及虚拟机服务器坏境配置与连接---超详细教学

一,操作系统介绍 1.1.什么是操作系统 操作系统(Operating System,简称OS)是一种系统软件,它是计算机硬件和应用软件之间的桥梁。它管理计算机的硬件和软件资源,为应用程序提供接口和服务,并协…

VS搭建32位和64位汇编开发环境

VS搭建32位和64位汇编开发环境 1 VS2017软件安装2 创建汇编工程3 配置X86汇编环境(32位)4 配置X64汇编环境(64位)5 调试技巧 本文属于《 X86架构指令基础系列教程》之一,欢迎查看其它文章。 1 VS2017软件安装 安装过…

根据键名解析特定属性的值相关API

mycdev.c #include <linux/init.h> #include <linux/module.h> #include <linux/of.h>struct device_node *node; //解析得到的设备树节点对象指针 struct property *pr; //属性结构体指针 int len; u32 a; u32 b[2]; const char *str; u8 c[6]; static i…

MFI芯片I2C地址转换(写读转7位传入API接口)

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)&#xff1f;可加我微信hezkz17, 本群提供音频技术答疑服务 MFI芯片I2C地址转换(写读转7位传入API接口&#xff09; #define MFI_I2C_CHIP_ADDR 0x10// 芯片写/读 0x20/0x21(写/读) 七位地址 0x10 //zk 使用读地址…

jdbc 对事务的支持

MySQL中默认开启事务自动提交功能&#xff0c;即 每个SQL语句都会自动开启一个事务并提交&#xff0c;如果没有显式地使用COMMIT或者ROLLBACK语句&#xff0c;则所有的修改都将被保存到数据库中。这种情况下&#xff0c;如果某个操作出现错误&#xff0c;就无法回滚事务&#x…

使用Python实现文字的声音播放

winsound 是 Python 的一个内置模块&#xff0c;它提供了访问 Windows 操作系统的声音播放功能的接口。这个模块可以用来播放简单的声音&#xff0c;例如提示音或者短促的音效。 # Author : 小红牛 # 微信公众号&#xff1a;WdPython import win32com.client import winsound#…

【已解决】axios post请求body为字符串

文章目录 现在需要的参数格式正常post请求参数 解决方法代码示例axiosfetch![在这里插入图片描述](https://img-blog.csdnimg.cn/9372f6efae13432896368aa3e25194cf.png) 现在需要的参数格式 正常post请求参数 解决方法 修改 Content-Type 为 text/plain 参数直接给一个字符串…

RT-Thread 8. RT-Thread Studio arm-gcc使用10.2.1编译

1. gcc编译器下载 E:\RT-ThreadStudio\repo\Extract\ToolChain_Support_Packages\ARM\GNU_Tools_for_ARM_Embedded_Processors2. 把5.4.1 改为5.4.11 再“全部构建”&#xff0c;提示错误 3. 把工具链版本改为10.2.1&#xff0c;再“全部构建”

如何正确设置Kubernetes的request和limit

有效设置Kubernetes的request和limit对应用程序性能、稳定性和成本有重大影响。然而&#xff0c;在过去的一年里&#xff0c;与许多团队的合作向我们表明&#xff0c;很难确定这些参数的正确值。出于这个原因&#xff0c;我们创建了这个简短指南&#xff0c;以帮助团队更准确地…

leetcode动态规划学习

0-1背包问题 参考&#xff1a; 【动态规划/背包问题】那就从 0-1 背包问题开始讲起吧 ... 内容是学习 宫水三叶的刷题日记 公众号专题内容时的笔记&#xff0c;为了方便个人复习整理到这里。建议大家关注该公众号&#xff0c;写的很清楚&#xff0c;有更多内容。 经典0-1背…

Linux进程等待

Linux进程等待 一.什么是进程等待二.为什么要有进程等待三.怎么进行进程调用1.僵尸进程问题2.waitpid3.获取进程退出状态 一.什么是进程等待 通过系统调用wait和waitpid&#xff0c;来进行对子进程进行状态检测与回收功能。 二.为什么要有进程等待 1。之前讲过&#xff0c;子…