main.c

来自「Bootloader for Atmel AT91SAM7S128 lload」· C语言 代码 · 共 53 行

C
53
字号

#include "common.h"
#include "main.h"
#include "flash.h"
#include "usart.h"

int main(void)
{	
	usartInit();
	
	*AT91C_PIOA_PPUDR = 0x01000000;
	*AT91C_PIOA_OER = 0x01000000;
	
	uint32 i, blpage;
	
	while (1) {	

		switch(usart_getc()) {
			case 1: //Write
				
				//Get page (2 bytes)
				blpage = usart_getc();
				blpage += usart_getc()<<8;
				
				//Get data
				for(i=0; i<FLASH_PAGE_SIZE_WORDS; i++) {
					flash_buf[i] = (usart_getc());
					flash_buf[i] += (usart_getc()<<8);
					flash_buf[i] += (usart_getc()<<16);
					flash_buf[i] += (usart_getc()<<24);
				}
				
				*AT91C_PIOA_SODR = 0x01000000;
				flash_write(blpage);
				*AT91C_PIOA_CODR = 0x01000000;		
				
				//Confirm ok
				usart_putc(1);
				break;
			
			case 4: //Get Version
				usart_putc(1);
				break;
				
			default:
				break;
		}
		
	}
	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?