main.c
来自「AT91RM9200的一级boot」· C语言 代码 · 共 57 行
C
57 行
#include <at91rm9200.h>extern void AT91F_DBGU_Printk(char *);extern char _stext,_etext,_sdata,_edata;#define SRC 0x10020000 // U-BOOT 在FLASH中的起始地址#define DST 0x21f00000 // U-BOOT 载入SDRAM地址#define LEN 0x20000#define LED1 AT91C_PIO_PB8#define LED2 AT91C_PIO_PB15#define LED3 AT91C_PIO_PB16#define LED4 AT91C_PIO_PB17void decompress_image_led_on(AT91PS_PIO pPio,unsigned int flag){ pPio->PIO_CODR = flag;}void decompress_image_led_off(AT91PS_PIO pPio,unsigned int flag){ pPio->PIO_SODR = flag;}void AT91F_PIO_CfgOutput(AT91PS_PIO pPio,unsigned int pioEnable){ pPio->PIO_PER = pioEnable; pPio->PIO_OER = pioEnable; pPio->PIO_SODR = pioEnable;}void boot() { int i; char* ptr=(char*)DST; AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,LED1|LED2|LED3|LED4); //配置GPIO为输出 for(i=0;i<LEN;i++) ptr[i]=0; AT91F_DBGU_Printk("\n\r"); AT91F_DBGU_Printk("*********************************\n\r"); AT91F_DBGU_Printk("** Welcome to ATMEL AT91RM9200 **\n\r"); AT91F_DBGU_Printk("*********************************\n\r"); decompress_image_led_on(AT91C_BASE_PIOB,LED1); decompress_image(SRC,DST,LEN);// 解压u-boot.bin.gz decompress_image_led_off(AT91C_BASE_PIOB,LED1); asm("mov pc,%0" : : "r" (DST));};void recover(char* s) { for(;;);};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?