⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 自己写的一个基于kb9202开发板的bootloader
💻 C
字号:
#include "at91rm9200.h"#include "uart.h"#include "xmodem.h"#include "network.h"#include "cmd.h"inline void tc_init(){	tc_reg_p tc0 = (tc_reg_s *)TC0_BASE;	tc0->tcc[0].tc_ccr = 1<<TC_CLKDIS;	tc0->tcc[0].tc_rc = 0xc000;				//288k/48k=6	tc0->tcc[0].tc_cmr = (TIMER_CLOCK4) | (TC_CPCTRG);		//clock=36M/128=288k	tc0->tcc[0].tc_ier = 1<<TC_CPCS;}inline void pmc_init(){	pmc_reg_p pmc  = (pmc_reg_s *)PMC_BASE;/* pll configuration */	pmc->ckgr_pllar = 0x20473f05;	//diva=5, mula=72, pllacount=63, the plla out = 10/5*72=144MHz	while( !( pmc->pmc_sr&(1<<1) ) );	pmc->pmc_mckr = 0x106;			//prescale=2, pck=144/2=72MHz. mdiv=2, mck=72/2=36MHz	while( !( pmc->pmc_sr&(1<<3) ) );	pmc->pmc_pcer = 1<<ID_TC0;		//enable the clock for tc0//	pmc->pmc_pcer = (1<<ID_PIOA) || (1<<ID_PIOB) || (1<<ID_PIOC);	//enable the clock for pioa,b,c}inline void aic_init(){	aic_reg_p aic = (aic_reg_s *)AIC_BASE;	aic->aic_idcr = 1<<ID_TC0;//	aic->aic_smr[ID_TC0] = ;	aic->aic_svr[ID_TC0] = (unsigned)int_tc;	aic->aic_iccr = 1<<ID_TC0;	aic->aic_iecr = 1<<ID_TC0;}inline void led_init(){	int value;	pio_reg_p pioc = (pio_reg_s *)PIOC_BASE;	value = LED1 | LED2 | LED3;	pioc->pio_odr &= ~value;	pioc->pio_oer |= value;	pioc->pio_pdr &= ~value;	pioc->pio_per |= value;	pioc->pio_owdr &= ~value;	pioc->pio_ower =  value;}void reset(){	pmc_init();	led_init();	dbgu_init();	tc_init();	aic_init();	emac_init();	arp_test();	cmd_loop();}

⌨️ 快捷键说明

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