<ARM>
=UART
-AVR과 RX/TX 반대 => 위치 바꾸기

=DBGU (Debug Unit)


-

=DMA 칩 ( CPU가 메모리 데이터 이동(COPY)이 아닌 다른 일(연산) 처리하도록 )
(장치간 CPU 안거치고 바로 연결)

=동기/ 비동기
-동기 - 특정 장치에 맞춰(clk)데이터 보내기 받기
-비동기 - 2선(RX,TX) START BIT(데이터인지 아닌지 모르므로 시작 신호 필요)
=SAMPLING ( 1을 언제 채취할 것인지 (시작/중간/끝))

=Test Mode
- Automatic Echo : RX - O TX - X : LOOPBACK
- Local Loopback (리눅스:가상의 랜카드) 외부 단절 - 자기가 보낸 데이터 받음
- Remote Loopback : RX - X TX - X : LOOPBACK




<PROJECT.H>
#ifndef _PROJECT_H #define _PROJECT_H
#include "AT91SAM7S256.h"
#define MCK 48000000
// 2008.09.10. #ifndef __ASSEMBLY__ #include "lcd.h"
void default_fiq_handler(); void default_irq_handler(); void default_spurious_handler(); #endif // 2008.09.10.
#endif // _PROJECT_H |
<DBGU.H>
#ifndef __DBGU_H__ #define __DBGU_H__ #include <AT91SAM7S256.h> #include "project.h"
#define BAUD 115200 #define DBGU_CD (MCK/(16*BAUD))
void DBGU_Init(void);
#endif //__DBGU_H__ |
<DBGU.C>
#include "dbgu.h"
void DBGU_Init(void) { *AT91C_PIOA_ASR = AT91C_PA9_DRXD | AT91C_PA10_DTXD; // Peripheral A setting *AT91C_DBGU_CR = AT91C_US_RXDIS | AT91C_US_TXDIS; // Disable
// AT91C_US_RXEN | AT91C_US_TXEN; // Enable //AT91C_US_RSTRX | AT91C_US_RSTTX; // Reset return; } |