Busan IT/ARM Controller
AT91SAM7S254회로도, LED불켜기
newind2000
2015. 7. 21. 17:27
================================ Outline ====================================
AT91SAM7S254회로도
LED불켜기
----------------------------------------------------------------------------
AT91SAM7S254회로도
http://www.devicemart.co.kr/5713 에서 회로도를 다운로드 받는다.



regulator - 전압을 규칙적으로 공급해주는 소자

Regulator에서 남은 전압은 열로 방출되기 때문에 발열이 발생한다.
발열이 많은 소자는 보드에서 떨어뜨린 후(플라스틱을 사용하여 이격) 납땜을 한다.



LED 불켜기
LED에 불을 켜는 코딩을 해보자.
소스를 컴파일 한 후 arm을 USB 포트에 연결하여 pc에 끼운다.
Sam-ba를 실행한다.

컴파일 된 flash용 bin파일을 올려준다.




/*** 소스 ***/
#define PIO_PER (*((volatile unsigned int *)0xFFFFF400)) //PIO enable register #define PIO_PDR (*((volatile unsigned int *)0xFFFFF404)) #define PIO_PSR (*((volatile unsigned int *)0xFFFFF408)) #define PIO_OER (*((volatile unsigned int *)0xFFFFF410)) #define PIO_ODR (*((volatile unsigned int *)0xFFFFF414)) #define PIO_OSR (*((volatile unsigned int *)0xFFFFF418)) #define PIO_IFER (*((volatile unsigned int *)0xFFFFF420)) #define PIO_IFDR (*((volatile unsigned int *)0xFFFFF424)) #define PIO_IFSR (*((volatile unsigned int *)0xFFFFF428)) #define PIO_SODR (*((volatile unsigned int *)0xFFFFF430)) #define PIO_CODR (*((volatile unsigned int *)0xFFFFF434)) #define PIO_ODSR (*((volatile unsigned int *)0xFFFFF438)) #define PIO_PDSR (*((volatile unsigned int *)0xFFFFF43C)) #define PIO_IER (*((volatile unsigned int *)0xFFFFF440)) #define PIO_IDR (*((volatile unsigned int *)0xFFFFF444)) #define PIO_IMR (*((volatile unsigned int *)0xFFFFF448)) #define PIO_ISR (*((volatile unsigned int *)0xFFFFF44C)) #define PIO_MDER (*((volatile unsigned int *)0xFFFFF450)) #define PIO_MDDR (*((volatile unsigned int *)0xFFFFF454)) #define PIO_MDSR (*((volatile unsigned int *)0xFFFFF458)) #define PIO_PUDR (*((volatile unsigned int *)0xFFFFF460)) #define PIO_PUER (*((volatile unsigned int *)0xFFFFF464)) #define PIO_PUSR (*((volatile unsigned int *)0xFFFFF468)) #define PIO_ASR (*((volatile unsigned int *)0xFFFFF470)) #define PIO_BSR (*((volatile unsigned int *)0xFFFFF474)) #define PIO_ABSR (*((volatile unsigned int *)0xFFFFF478)) #define PIO_OWER (*((volatile unsigned int *)0xFFFFF4A0)) #define PIO_OWDR (*((volatile unsigned int *)0xFFFFF4A4)) #define PIO_OWSR (*((volatile unsigned int *)0xFFFFF4A8))
int main() { volatile unsigned int iCount = 0; PIO_PER = 0x00000003; //0,1번 핀을 활성화 시킨다. PIO_OER = 0x00000003; //0,1번 핀을 출력 시킨다.
while (1) { PIO_SODR = 0x00000003; //SET으로 바꾸고 싶은 자리에 1을 넣으면 high로 바뀐다. //다른 비트에는 영향을 미치지 않는다.
for(iCount=0;1000000 >= iCount; ++iCount);
PIO_CODR = 0x00000003; //SET으로 바꾸고 싶은 자리에 1을 넣으면 low로 바뀐다. //다른 비트에는 영향을 미치지 않는다.
for(iCount=0;1000000 >= iCount; ++iCount); }
return 0; }
|
cstartup.S
elf32-littlearm.lds
lowlevel.c
main.c
Makefile