ch573f啟動到main時間

在自己花的ch573f芯片上測試了一下上電源亮燈,過了大概10s左右才亮,試了幾個不同的例程結(jié)果都差不多,是啟動文件哪里有問題么

啟動文件如下

/********************************** (C) COPYRIGHT *******************************

?* File Name? ? ? ? ? : startup_ch57x.s

?* Author? ? ? ? ? ? ?: WCH

?* Version? ? ? ? ? ? : V1.0.0

?* Date? ? ? ? ? ? ? ?: 2020/04/30

?* Description? ? ? ? :

?* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.

?* SPDX-License-Identifier: Apache-2.0

?*******************************************************************************/


.section .init,"ax",@progbits

.global _start

.align 1

_start:

j handle_reset


? ? .section? ? .vector,"ax",@progbits

? ? .align? 1

_vector_base:

? ? .option norvc;

? ? .word? ?0

? ? .word? ?0

? ? ? ? j? ?NMI_Handler? ? ? ? ? ? ? ? ?/* NMI Handler */

? ? ? ? j? ?HardFault_Handler? ? ? ? ? ?/* Hard Fault Handler */

? ? .word? ?0

? ? .word? ?0

? ? .word? ?0

? ? .word? ?0

? ? .word? ?0

? ? .word? ?0

? ? .word? ?0

? ? .word? ?0

? ? ? ? j? ?SysTick_Handler? ? ? ? ? ? /* SysTick Handler */

? ? .word? ?0

? ? ? ? j? ?SW_Handler? ? ? ? ? ? ? ? ?/* SW Handler */

? ? .word? ?0

? ? /* External Interrupts */

? ? ? ? j? ?TMR0_IRQHandler? ? ? ? ? ? /* 0:? TMR0 */

? ? ? ? j? ?GPIOA_IRQHandler? ? ? ? ? ?/* GPIOA */

? ? ? ? j? ?GPIOB_IRQHandler? ? ? ? ? ?/* GPIOB */

? ? ? ? j? ?SPI0_IRQHandler? ? ? ? ? ? /* SPI0 */

? ? ? ? j? ?BB_IRQHandler? ? ? ? ? ? ? /* BLEB */

? ? ? ? j? ?LLE_IRQHandler? ? ? ? ? ? ?/* BLEL */

? ? ? ? j? ?USB_IRQHandler? ? ? ? ? ? ?/* USB */

? ? ? ? .word? ?0

? ? ? ? j? ?TMR1_IRQHandler? ? ? ? ? ? /* TMR1 */

? ? ? ? j? ?TMR2_IRQHandler? ? ? ? ? ? /* TMR2 */

? ? ? ? j? ?UART0_IRQHandler? ? ? ? ? ?/* UART0 */

? ? ? ? j? ?UART1_IRQHandler? ? ? ? ? ?/* UART1 */

? ? ? ? j? ?RTC_IRQHandler? ? ? ? ? ? ?/* RTC */

? ? ? ? j? ?ADC_IRQHandler? ? ? ? ? ? ?/* ADC */

? ? ? ? .word? ?0

? ? ? ? j? ?PWMX_IRQHandler? ? ? ? ? ? /* PWMX */

? ? ? ? j? ?TMR3_IRQHandler? ? ? ? ? ? /* TMR3 */

? ? ? ? j? ?UART2_IRQHandler? ? ? ? ? ?/* UART2 */

? ? ? ? j? ?UART3_IRQHandler? ? ? ? ? ?/* UART3 */

? ? ? ? j? ?WDOG_BAT_IRQHandler? ? ? ? /* WDOG_BAT */


? ? .option rvc;


? ? .section? ? .vector_handler, "ax", @progbits

? ? .weak? ?NMI_Handler

? ? .weak? ?HardFault_Handler

? ? .weak? ?SysTick_Handler

? ? .weak? ?SW_Handler

? ? .weak? ?TMR0_IRQHandler

? ? .weak? ?GPIOA_IRQHandler

? ? .weak? ?GPIOB_IRQHandler

? ? .weak? ?SPI0_IRQHandler

? ? .weak? ?BB_IRQHandler

? ? .weak? ?LLE_IRQHandler

? ? .weak? ?USB_IRQHandler

? ? .weak? ?TMR1_IRQHandler

? ? .weak? ?TMR2_IRQHandler

? ? .weak? ?UART0_IRQHandler

? ? .weak? ?UART1_IRQHandler

? ? .weak? ?RTC_IRQHandler

? ? .weak? ?ADC_IRQHandler

? ? .weak? ?PWMX_IRQHandler

? ? .weak? ?TMR3_IRQHandler

? ? .weak? ?UART2_IRQHandler

? ? .weak? ?UART3_IRQHandler

? ? .weak? ?WDOG_BAT_IRQHandler


NMI_Handler:? 1:? j 1b

HardFault_Handler:? 1:? j 1b

SysTick_Handler:? 1:? j 1b

SW_Handler:? 1:? j 1b

TMR0_IRQHandler:? 1:? j 1b

GPIOA_IRQHandler:? 1:? j 1b

GPIOB_IRQHandler:? 1:? j 1b

SPI0_IRQHandler:? 1:? j 1b

BB_IRQHandler:? 1:? j 1b

LLE_IRQHandler:? 1:? j 1b

USB_IRQHandler:? 1:? j 1b

TMR1_IRQHandler:? 1:? j 1b

TMR2_IRQHandler:? 1:? j 1b

UART0_IRQHandler:? 1:? j 1b

UART1_IRQHandler:? 1:? j 1b

RTC_IRQHandler:? 1:? j 1b

ADC_IRQHandler:? 1:? j 1b

PWMX_IRQHandler:? 1:? j 1b

TMR3_IRQHandler:? 1:? j 1b

UART2_IRQHandler:? 1:? j 1b

UART3_IRQHandler:? 1:? j 1b

WDOG_BAT_IRQHandler:? 1:? j 1b


.section .handle_reset,"ax",@progbits

.weak handle_reset

.align 1

handle_reset:

.option push?

.option norelax?

la gp, __global_pointer$

.option pop?

1:

la sp, _eusrstack?


/* Load highcode code? section from flash to RAM */

2:

? ? la a0, _highcode_lma

? ? la a1, _highcode_vma_start

? ? la a2, _highcode_vma_end

? ? bgeu a1, a2, 2f

1:

? ? lw t0, (a0)

? ? sw t0, (a1)

? ? addi a0, a0, 4

? ? addi a1, a1, 4

? ? bltu a1, a2, 1b


/* Load data section from flash to RAM */

2:

la a0, _data_lma

la a1, _data_vma

la a2, _edata

bgeu a1, a2, 2f

1:

lw t0, (a0)

sw t0, (a1)

addi a0, a0, 4

addi a1, a1, 4

bltu a1, a2, 1b

2:

/* clear bss section */

la a0, _sbss

la a1, _ebss

bgeu a0, a1, 2f

1:

sw zero, (a0)

addi a0, a0, 4

bltu a0, a1, 1b

2:

? ? li t0, 0x88

? ? csrs mstatus, t0

la t0, _vector_base

? ? ori t0, t0, 1

csrw mtvec, t0

la t0, main

csrw mepc, t0

/* enable vector relocation

li t0, 0xE000ED14

li t1, 1

sw t1, 0(t0)*/

mret




偶爾啟動速度很快,大多時候十多秒


如果是10s左右的話,可以看下pb22引腳在上電時是不是接地了,導(dǎo)致程序停留在bootloader中等待升級。


拿萬用表量了一下沒接地,但是我刷程序的時候上電就直接檢測到設(shè)備了,PB22沒跟PB23用跳冒線短接


上電是直接檢測到設(shè)備,則代表進(jìn)入boot模式,此時會在boot等待無法運(yùn)行你的功能代碼。檢查PB22是否接地,如果上電的時候該引腳接地則會進(jìn)入boot。正常處理將該引腳處于懸空的狀態(tài)即可;并檢查是否將燒錄引腳修改為PB11(上電拉高會進(jìn)入boot);可以燒錄一個ADC的代碼測試查看是否會上電立馬執(zhí)行功能代碼。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频