【经验】实战芯海CS32F031C8T6 MCU使用GCC编译器的startup.s启动文件

2023-02-14 世强
32位MCU,CS32F031C8T6,芯海 32位MCU,CS32F031C8T6,芯海 32位MCU,CS32F031C8T6,芯海 32位MCU,CS32F031C8T6,芯海

芯海推出的32位MCU CS32F031C8T6采用高性能的ARM Cortex®-M0内核,嵌入高达64K Bytes flash和8K Bytes SRAM,最高工作频率48MHz。芯片提供标准的通信接口、ADC,定时器,PWM等丰富的资源。在工业控制、消费类电子等方面有的广泛的应用。


目前CS32F031C8T6官方的Pack包提供的都是基于Keil开发环境的例程,众所周知Keil的费用较高,而GCC是免费的编译器,但一个项目如果移植到GCC的环境工作量最大的主要有以下两个方面:

1、startup.s启动文件的修改,这个部分由于GCC和Keil编译器的汇编格式有所不同,所以需要按照GCC的汇编格式重写startup.s启动文件

2、.ld 文件的编写,.ld文件是GCC编译链接时需要,在此文件中要设置RAM 和ROM 的起始地址和大小,以及堆栈的大小。


本文就以CS32F031C8T6为例,给大家分享一个startup.s文件,希望帮助有需要用GCC开发芯海CS32F031C8T6产品的各位小伙伴。


startup.s启动文件如下:

  .syntax unified

  .cpu cortex-m0

  .fpu softvfp

  .thumb 

.global g_pfnVectors

.global Default_Handler 

.word _sidata

.word _sdata

.word _edata

.word _sbss

.word _ebss 

.equ  BootRAM, 0xF108F85F 

  .section .text.Reset_Handler

  .weak Reset_Handler

  .type Reset_Handler, %function

Reset_Handler:

  ldr   r0, =_estack

  mov   sp, r0

 

    LDR R0,=0x00000004

    LDR R1, [R0]

    LSRS R1, R1, #24

    LDR R2,=0x1F

    CMP R1, R2

    BNE ApplicationStart

  

    LDR R0,=0x40021018

    LDR R1,=0x00000001

    STR R1, [R0]

 

    LDR R0,=0x40010000

    LDR R1,=0x00000000

    STR R1, [R0]

 

ApplicationStart:

  movs r1, #0

  b LoopCopyDataInit

 

CopyDataInit:

  ldr r3, =_sidata

  ldr r3, [r3, r1]

  str r3, [r0, r1]

  adds r1, r1, #4

 

LoopCopyDataInit:

  ldr r0, =_sdata

  ldr r3, =_edata

  adds r2, r0, r1

  cmp r2, r3

  bcc CopyDataInit

  ldr r2, =_sbss

  b LoopFillZerobss

 

FillZerobss:

  movs r3, #0

  str  r3, [r2]

  adds r2, r2, #4

 

LoopFillZerobss:

  ldr r3, = _ebss

  cmp r2, r3

  bcc FillZerobss

 

    bl  SystemInit

   

  bl main

 

LoopForever:

    b LoopForever

 

.size Reset_Handler, .-Reset_Handler

 

    .section .text.Default_Handler,"ax",%progbits

Default_Handler:

Infinite_Loop:

  b Infinite_Loop

  .size Default_Handler, .-Default_Handler

 

   .section .isr_vector,"a",%progbits

  .type g_pfnVectors, %object

  .size g_pfnVectors, .-g_pfnVectors


g_pfnVectors:

  .word _estack

  .word Reset_Handler

 

  .word NMI_Handler

  .word HardFault_Handler

  .word 0

  .word 0

  .word 0

  .word 0

  .word 0

  .word 0

  .word 0

  .word SVC_Handler

  .word 0

  .word 0

  .word PendSV_Handler

  .word SysTick_Handler

 

  .word WWDT_IRQHandler

  .word PVD_IRQHandler  

  .word RTC_IRQHandler

  .word FLASH_IRQHandler

  .word RCU_IRQHandler

  .word EXTI0_1_IRQHandler

  .word EXTI2_3_IRQHandler

  .word EXTI4_15_IRQHandler

  .word 0  

  .word DMA1_Channel1_IRQHandler

  .word DMA1_Channel2_3_IRQHandler

  .word DMA1_Channel4_5_IRQHandler

  .word ADC1_IRQHandler

  .word TIM1_BRK_UP_TRG_COM_IRQHandler

  .word TIM1_CC_IRQHandler

  .word TIM2_IRQHandler  

  .word TIM3_IRQHandler

  .word 0  

  .word 0  

  .word TIM14_IRQHandler

  .word 0

  .word TIM16_IRQHandler

  .word TIM17_IRQHandler

  .word I2C1_IRQHandler

  .word 0  

  .word SPI1_IRQHandler

  .word 0

  .word USART1_IRQHandler

  .word 0

  .word 0

  .word 0

  .word 0

  .word BootRAM        

  

  .weak NMI_Handler

  .thumb_set NMI_Handler,Default_Handler

 

  .weak HardFault_Handler

  .thumb_set HardFault_Handler,Default_Handler

 

  .weak SVC_Handler

  .thumb_set SVC_Handler,Default_Handler

 

  .weak PendSV_Handler

  .thumb_set PendSV_Handler,Default_Handler

 

  .weak SysTick_Handler

  .thumb_set SysTick_Handler,Default_Handler

 

  .weak WWDT_IRQHandler

  .thumb_set WWDT_IRQHandler,Default_Handler

 

  .weak PVD_IRQHandler

  .thumb_set PVD_IRQHandler,Default_Handler

 

  .weak RTC_IRQHandler

  .thumb_set RTC_IRQHandler,Default_Handler

 

  .weak FLASH_IRQHandler

  .thumb_set FLASH_IRQHandler,Default_Handler

 

  .weak RCU_IRQHandler

  .thumb_set RCU_IRQHandler,Default_Handler

 

  .weak EXTI0_1_IRQHandler

  .thumb_set EXTI0_1_IRQHandler,Default_Handler

 

  .weak EXTI2_3_IRQHandler

  .thumb_set EXTI2_3_IRQHandler,Default_Handler

 

  .weak EXTI4_15_IRQHandler

  .thumb_set EXTI4_15_IRQHandler,Default_Handler

 

  .weak DMA1_Channel1_IRQHandler

  .thumb_set DMA1_Channel1_IRQHandler,Default_Handler

 

  .weak DMA1_Channel2_3_IRQHandler

  .thumb_set DMA1_Channel2_3_IRQHandler,Default_Handler

 

  .weak DMA1_Channel4_5_IRQHandler

  .thumb_set DMA1_Channel4_5_IRQHandler,Default_Handler

 

  .weak ADC1_IRQHandler

  .thumb_set ADC1_IRQHandler,Default_Handler

   

  .weak TIM1_BRK_UP_TRG_COM_IRQHandler

  .thumb_set TIM1_BRK_UP_TRG_COM_IRQHandler,Default_Handler

 

  .weak TIM1_CC_IRQHandler

  .thumb_set TIM1_CC_IRQHandler,Default_Handler

 

  .weak TIM2_IRQHandler

  .thumb_set TIM2_IRQHandler,Default_Handler

   

  .weak TIM3_IRQHandler

  .thumb_set TIM3_IRQHandler,Default_Handler

   

  .weak TIM14_IRQHandler

  .thumb_set TIM14_IRQHandler,Default_Handler

   

  .weak TIM16_IRQHandler

  .thumb_set TIM16_IRQHandler,Default_Handler

 

  .weak TIM17_IRQHandler

  .thumb_set TIM17_IRQHandler,Default_Handler

 

  .weak I2C1_IRQHandler

  .thumb_set I2C1_IRQHandler,Default_Handler

   

  .weak SPI1_IRQHandler

  .thumb_set SPI1_IRQHandler,Default_Handler

   

  .weak USART1_IRQHandler

  .thumb_set USART1_IRQHandler,Default_Handler

   

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由土肥圆提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】国产32位MCU N32G457VEL7替换STM32F407VET6的硬件设计注意事项

国民技术推出的32位MCU N32G457VEL7采用32-bit ARM Cortex-M4内核,广泛应用于网络打印,工业控制等领域,在货源紧张时完全可以替换STM32F407VET6,但封装引脚定义上还是有些许差异,需要注意。

2021-06-24 -  设计经验 代理服务 技术支持 采购服务

【经验】解析芯海科技32位MCU CS32F031G8U6在keil中新建工程的相关操作步骤

CS32F031G8U6是芯海科技推出的一款针对光模块应用的MCU解决方案,内部集成的温度传感器线性误差为+/-3℃,适用于10G 、25G、100G部分类型的光模块应用。本文介绍32位MCU CS32F031G8U6在keil中新建工程的相关操作步骤。

2022-03-17 -  设计经验 代理服务 技术支持 采购服务

【经验】以芯海32位MCU CS32F035F6P7为例介绍如何通过ISP上位机软件进行Flash的读写保护

ISP(在系统上编程)是一种常用的下载或者升级程序的方式,通常会选择使用UART进行操作。本文以芯海32位MCU CS32F035F6P7为例介绍通过上位机软件CS32 ISP Programmer进行Flash读写保护的方法。

2023-03-28 -  设计经验 代理服务 技术支持 采购服务

海信旗下“隐形冠军”信芯微,授权世强硬创代理32位MCU等产品

信芯微32位MCU及蓝牙芯片主要应用于智能家电、工业控制、消费电子等领域。

2024-01-02 -  签约新闻 代理服务 技术支持 采购服务

【IC】灵动新推出32位MCU MM32F0120,主频高达72MHz,提供64KB Flash和8KB RAM

灵动微电子发布的MM32F0120,搭载Cortex M0内核,主频高达72MHz,提供64KB Flash和8KB RAM,最高支持48pin封装。适用于屏显控制、电动玩具、电源管理、马达控制、无线快充等多种应用场合。

2024-09-11 -  产品 代理服务 技术支持 采购服务

灵动微电子扎根张江造“芯”,打造本土32位MCU知名品牌

灵动微电子成立于2011年,2016年进军MCU市场,2019年积极向工业、大家电、汽车等领域发力,目前已涵盖消费电子、电机与电源、家电、汽车、计算机与通信、工业控制等应用领域,客户群体包括飞利浦、小米、汇川、海尔、海信、美的等,是中国本土领先的通用32位MCU 产品及解决方案供应商。

2024-09-19 -  原厂动态 代理服务 技术支持 采购服务

【IC】芯圣电子全新HC32F103B系列32位通用MCU,工作频率最高72MHz,温度范围-40到+105℃

Holychip HC32F103B系列是一款基于ARM Cortex M3内核的32位通用MCU,工作频率最高72MHz,提供20K字节SRAM和128K字节Flash,适用于工业控制,电机驱动,电源监控和消费类电子等领域。

2023-10-29 -  产品 代理服务 技术支持 采购服务

芯海32位MCU选型表

芯海32位MCU选型表包括常规32位MCU、32位低功耗MCU、32位车规MCU。该选型表的Core包括M0和M3两种,内含型号是芯海科技基于Arm® Cortex®-M内核、高可靠性的32位通用微控制器。 包括多款产品,内嵌Flash存储器,集成高性能ADC、丰富的模拟外设、适用于工业控制的高级定时器和通信接口,满足工业应用的质量和可靠性标准,被广泛用于工业控制、汽车电子、智能家居等领域。

产品型号
品类
Core
Freq.(MHz)
Flash(Bytes)
SRAM(Bytes)
IO
Adv.Timer
16bit GP Timer
SysTick
FWDT/WWDT
UART
SPI
I2C
12bit ADC Units(ch)
Temp.Sensor
Operating Temp.(℃)
Supply Voltage(V)
Package
CS32F030F6P6-RA
32位MCU
M0
48MHz
32KBytes
4KBytes
15
1
5
1
1/1
4
1
1
1(9)
Y
-40℃~85℃
2.0V~5.5V
TSSOP20

选型表  -  芯海 立即选型

【应用】国产32位MCU AT32F403ARCT7用于智能止鼾枕,最高主频240MHz

智能止鼾枕是一种非穿戴式的智能止鼾设备,内置气囊,声音、压力传感器。本文推荐采用国产雅特力推出的32位MCU AT32F403ARCT7为主控, 最高主频240MHz,Flash 256k,工作温度范围-40~+105℃。

2022-09-06 -  应用方案 代理服务 技术支持 采购服务

CS32G051 32 位 Type-C&PD 控制器

描述- CS32G051是一款32位微处理器,适用于工业控制和高性能、低功耗应用。该芯片具备32MHz工作频率,内嵌256K字节程序Flash和12K字节SRAM,支持多种外设,包括I/O口、定时器、UART、I2C、ADC等。此外,CS32G051还支持In-System Programming (ISP) & In-Circuit Programming (ICP)功能,并提供多种工作模式以满足不同低功耗需求。

型号- CS32G051 系列,CS32G051KCU6,CS32G050KCU6,CS32G020XX,CS32G051

2021-03-05  - 芯海  - 数据手册  - REV1.0 代理服务 技术支持 采购服务

MS60F302x 32位MCU数据手册

描述- 本资料为晟矽微电生产的MS60F302x系列32位MCU的数据手册,介绍了该系列产品的特性、功能和应用。主要包括ARM Cortex-M0内核、丰富的片上资源、多种外设接口、低功耗模式和强大的电源管理系统。

型号- MS60F3023BP64,MS60F3023BP32,MS60F3023BP48,MS60F3026BP48,MS60F3025BP48,MS60F3026BP32,MS60F302X,MS60F3025BP64,MS60F3025BP32,MS60F301XBPXX,MS60F3026BP64

2023.11.20  - 晟矽微电子  - 数据手册  - 1.0.1 版本 代理服务 技术支持 采购服务

【元件】晟矽微电新推32位MCU系列MS60F321X,转换速率最高1Msps,专为光模块市场而设计

晟矽微电子推出全新的32位MCU系列产品MS60F321X,专为光模块市场而设计,与国际主流厂商产品Pin2Pin兼容,12位高精度ADC转换速率最高1Msps,增益误差±3LSB,为客户提供了无缝迁移的便利。

2023-07-06 -  新产品 代理服务 技术支持 采购服务

华芯微特SWM241系列32位MCU,工作频率最高48MHz,供电电压范围2.5V至5.5V

华芯微特SWM241系列32位MCU内嵌ARM® Cortex®-M0内核,凭借其出色的性能以及高可靠性、代码密度大等突出特点,可应用于工业控制、电机控制、白色家电等多种领域。SWM241支持片上包含精度为1%以内的48MHz时钟,最高支持48MHz时钟输出。同时提供最大为128K字节的FLASH和最大8K字节的SRAM。此外,芯片支持ISP操作及IAP,用户可自定义BOOT程序。

2023-12-02 -  产品 代理服务 技术支持 采购服务

【IC】芯海科技推出超低功耗32位MCU CS32L015,内嵌Flash存储器,最高主频可达24MHz

芯海科技CS32L015作为一款通用型超低功耗的高性价比32位MCU,内嵌Flash存储器,集成高性能ADC、丰富的外设和通信接口,最高主频可达24MHz,具有高整合度、高抗干扰、高可靠性的特点,被广泛用于消费类电子、智能家居等领域。

2023-10-14 -  产品 代理服务 技术支持 采购服务
展开更多

电子商城

查看更多

品牌:芯海

品类:32位MCU

价格:¥5.0667

现货: 2,958

品牌:芯海

品类:32位MCU

价格:¥3.0024

现货: 60,900

品牌:芯海

品类:32位MCU

价格:¥2.6934

现货: 20,928

品牌:芯海

品类:32位MCU

价格:¥4.1177

现货: 8,684

品牌:芯海

品类:32位MCU

价格:¥3.1765

现货: 4,900

品牌:芯海

品类:32位MCU

价格:¥5.0667

现货: 4,039

品牌:芯海

品类:32位MCU

价格:¥1.4236

现货: 298

品牌:芯海

品类:32位MCU

价格:¥0.9706

现货: 260

品牌:芯海

品类:32位MCU

价格:¥4.7059

现货: 175

品牌:芯海

品类:32位MCU

价格:¥3.8824

现货: 162

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:MindMotion

品类:32位MCU

价格:¥5.9400

现货:19,996

品牌:兆易创新

品类:MCU

价格:¥7.0000

现货:16,740

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥51.1158

现货:15,887

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥61.8336

现货:10,400

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥69.9064

现货:7,680

品牌:MindMotion

品类:32位MCU

价格:¥2.3800

现货:6,427

品牌:RENESAS

品类:32BIT MCU

价格:¥135.5187

现货:4,320

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥80.8990

现货:2,880

品牌:TI

品类:MCU

价格:¥124.3000

现货:2,872

品牌:RENESAS

品类:32-bit MCU

价格:¥28.8247

现货:2,279

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

最小起订量: 1000 提交需求>

IC烧录代工及IC自动化烧录

拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。

最小起订量: 1 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面