📄 main.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 + -