오전 이승규 선생님의 수업은 중간프로젝트 기간으로 개인 프로젝트 공부와 프로젝트 보고서 작성을 하였기에 수업내용은 없습니다.
AT91ARM7S256 Chip 회로도 분석
- ARM 7S -
- Jump Or Pin -
- Power -
- Max3232 -
- USB -
- Switch -
- Switch II -
- Noise -
ARM 7S을 이용하여 LED 제어
//#include "project.h"
// 기준이 되는 Pin 레지스터
#define PIOA (*((volatile unsigned int *)0xFFFFF400))
#define PIO_PER (*(volatile unsigned int *)0xFFFFF400)
#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)
#define PMC (*((volatile unsigned int *)0xFFFFFC00))
#define RSTC (*((volatile unsigned int *)0xFFFFFD00))
#define RTT (*((volatile unsigned int *)0xFFFFFD20))
#define PIT (*((volatile unsigned int *)0xFFFFFD30))
#define WDT (*((volatile unsigned int *)0xFFFFFD40))
#define VREG (*((volatile unsigned int *)0xFFFFFD60))
#define MC (*((volatile unsigned int *)0xFFFFFF00))
int main()
{
volatile unsigned int iCount = 0;
// PIO_PER의 PIN을 활성화 시키는 레지스터
PIO_PER = 0X00000001;
// 외부출력 설정 레지스터
PIO_OER = 0X00000001;
while (1)
{
// AVR과 ARM의 가장 큰 차이!
/* 원하는 포트의 비트에 SODR에 1을 넣으면 해당 비트만
High로 변경되고 반대로 CODR에 1을 넣으면 해당 비트만
Low로 변경이 된다. */
// Data Output 설정을 1로 변경 (Set)
PIO_SODR = 0X00000001;
for (iCount = 0; 1000000 >= iCount; ++iCount);
// Data Output 설정을 0로 변경(Clear)
PIO_CODR = 0X00000001;
for (iCount = 0; 1000000 >= iCount; ++iCount);
}
while (1);
return 0;
}
ARM 7S 256 보드에 코드 넣기
- 코드가 있는 해당 폴더에서 관리자 모드로 콘솔창을 띄워서 코드들을 make 시켜 컴파일 한다.
- 컴파일이 무사히 완료된다면 컴퓨터와 보드를 연결시킨다.
- Connection에는 \usb\ARM*의 형태로 잡혀야하고 보드는 AT91SAM7S256-EK로 사용자가 직접 선택해준다.
- 주의 -
- 이전에 ARM 7S에 코드를 넣은 경우가 있다면 ARM 7S 보드가 연결되지 않는다.
- 이럴때는 보드에서 삼바를 초기화 시켜줘야하는데 삼바 초기화는 아래 그림을 참조하기 바람.
- SAM-BA Program과 보드가 연결된 후 코드를 넣기위한 기본창
- 보드에 넣을 파일 선택
- 파일 전송
- 파일 전송 옵션 선택 I
- 파일 전송 옵션 선택 II
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20150730-7번-김재홍-IPC(내부 프로세스 간 통신 설비)통신 (4) | 2015.07.31 |
---|---|
20150729-6번-김성현-ARM7 (6) | 2015.07.30 |
20150728-3번-권오민 - 멀티 프로세스 프로그래밍 (17) | 2015.07.28 |
20150727-출석번호 5번 - 김성주 - 업무일지 (5) | 2015.07.27 |
20150720-31번-차윤도-ARM bootcode분석,Datasheet 중간프로젝트 (7) | 2015.07.20 |
2015.07.17(금) 주재민 -스테핑 모터,ARM Compiler 설치,Cygwin 설치 (2) | 2015.07.17 |
20150716 - 26번 임현수 ADConverter, ADCompare 서보모터제어, ARM(AT91SAM7S256), TCP헤더 캡처용 패킷애널라이저 (6) | 2015.07.17 |
20150714 - 23번 이량경 소켓 1:1 채팅 {server, client} / GoalPosition (7) | 2015.07.15 |