📄 main.c
字号:
#include "arm7tdmi.h"extern char _stext,_etext,_sdata,_edata;#define SRC ((long)(&_etext) + (long)(&_edata) - (long)(&_sdata))#define DST 0x7c0000#define LEN 0x040000#define DO_DEBUG#ifdef DO_DEBUGstatic usart_t *us=USARTA_BASE;void serial_init() { us->brgr = 260; us->cr=( RSTRX | RSTTX ); us->cr=( RXEN | TXEN ); us->mr=( USCLKS_ACLK | CHRL_EIGHT | PAR_NONE | NBSTOP_1 ); us->imr=~0ul;};void serial_putc(const char c) { if(c == '\n') serial_putc('\r'); while( (us->csr & TXRDY) == 0 ); us->thr=c;};void printf(char* s) { while(*s) serial_putc(*s++);};const char *hex = "0123456789abcdef";void printhex(int v) { int i; for(i=0;i<8;i++) { int c=v>>28; serial_putc(hex[c&0x0f]); v<<=4; };};#endifvoid boot() { int i; char* ptr=(char*)DST;#ifdef DO_DEBUG serial_init(); printf("SIAP-E AT75C220DK\n");#endif for(i=0;i<LEN;i++) ptr[i]=0; decompress_image(SRC,DST,LEN); asm("mov pc,%0" : : "r" (DST));};void recover(char* s) {#ifdef DO_DEBUG printf(s);#endif for(;;);};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -