直接进入TIVA系列MCU存在ROM中的bootloader的三种方法(转载)

网上查到的直接进入TIVA系列MCU存在ROM中的bootloader的三种方法,记录一下。

使用 TM4C ROM bootloader 的三種方式:

Flash Empty

當 MCU Flash Address 0x00000004 內容值是 0xFFFFFFFF
會直接進入 HW ROM Boootloader (Power ON or RESET)
也就是說MCU 內是沒燒入程式或是 Flash Erease 的狀態

BOOTCFG Setting GPIO

修改 BOOTCFG register 可指定 GPIO 強制進入 ROM Bootloader
這邊說明使用 GPIO PF4 Keep LOW 進入 HW ROM Bootloader (Power ON or RESET)
當程式設定過後就不會再執行此設定
若要清除改變設定,就要回復到預設狀態
利用 Tool 清除
LM Flash Programmer → Other Utilities → Debug Port Unlonk → Select Fury, DustDevil, TM4C123 and TM4C129 Classes → click Unlock

 

1

2

3

4

5

6

7

8

9

10

11

12

 

void CheckBootloaderCFG(void)

{

unsigned long bootcfg;

bootcfg = HWREG(FLASH_BOOTCFG);

if(bootcfg & FLASH_BOOTCFG_NW) {

HWREG(FLASH_FMA) = 0x75100000;

HWREG(FLASH_FMD) = FLASH_BOOTCFG_PORT_F | FLASH_BOOTCFG_PIN4 |

FLASH_BOOTCFG_KEY | FLASH_BOOTCFG_DBG1;

HWREG(FLASH_FMC) = DLASH_FMC_WRKEY | FLASH_FMC_COMT;

while((HWREG(FLASH_FMC) & FLASH_FMC_COMT) == FLASH_FMC_COMT);

}

}

Call ROM Bootloader API

也可在應用程序中調用 ROM Library 來使用 ROM Bootloader
以下範例使用 UART0 來說明
當使用 LM Flash Programmer 的 Serial(UART) 需勾選 Disbale Auto Buad Support
此 UART是固定傳輸速率

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

 

void JumpToBootloader(void)

{

// Set UART0 use ROM bootloader

ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);

ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

ROM_UARTConfigSetExpClk(

UART0_BASE, SysCtlClockGet(), 115200,

(UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_ONE | UART_CONFIG_WLEN_8));

ROM_UARTEnable(UART0_BASE);

// Disable all processor interrupts.

HWREG(NVIC_DIS0) = 0xffffffff;

HWREG(NVIC_DIS1) = 0xffffffff;

// Call the ROM UART bootloader

ROM_UpdateUART();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值