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

1. 修改MCU型号


2.在ENV界面输入
bash 复制代码
scons -c
scons --dist
3. dist下为更新后完整源代码
4.导入RT-Thread Studio

发现GD32F330已经生效了。

5. 自己编写startup_gd32f3x0.S,准确性待验证
c 复制代码
;/*
; * 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                  
相关推荐
bai54593623 分钟前
STM32 CubeIDE 通过PWM占空比控制舵机角度
stm32·单片机·嵌入式硬件
松涛和鸣2 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
简单中的复杂2 小时前
【避坑指南】RK3576 Linux SDK 编译:解决 Buildroot 卡死在 host-gcc-final 的终极方案
linux·嵌入式硬件
上海合宙LuatOS3 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
Hhh __灏3 小时前
stm32的SRAM内存不足如何分析和优化?堆栈空间如何优化?
单片机
LS_learner3 小时前
Snapd和Apt—Linux 上两种完全不同的软件包管理系统
嵌入式硬件
点灯小铭3 小时前
基于51单片机的双档交流电压表设计与实现
单片机·嵌入式硬件·毕业设计·51单片机·课程设计·期末大作业
厦门辰迈智慧科技有限公司4 小时前
全功能数据采集仪mcu主要用途
单片机·嵌入式硬件·水库大坝安全监测·数据采集仪mcu
jl48638214 小时前
变比测试仪显示屏的“标杆“配置!如何兼顾30000小时寿命与六角矢量图精准显示?
人工智能·经验分享·嵌入式硬件·物联网·人机交互