AT91SAM7S256

    2013.04.23_ARM_cstartup.S읽어보기

    ▶ ARM _ cstartup.S 알아보기 ldr = load registerpc라는 load register에 _low_level_init 를 넣어라-PC(program count) -함수가 컴파일 하면 기계어로 바뀜.-올리는 작업(로딩) -기계어로 바뀐 함수의 시작주소를 CPU에 옮기는 작업(실행)-CPU의 PC(IP:명령있는 포인터)-EIP라고 한다. 인텔 32bit에서는 확장되어 이름이 Extention 이 붙음. 0.142번째줄에서 실행1.reset-0번지로 보냄2.reset handler 호출 3.low_level_init4. _lp_ll_init 5. lowlevel_init 함수 실행 (LCD.c 에 있음, 전반적인 실행을 끌어올려줌)... 순차적으로 실행해나감 ▶ Lowlevel.c에서 ..

    2013.04.22_makefile읽어보기

    ▶ Makefile 은 알아볼줄 알아야한다! : echo 는 메세지를 출력하는 명령어, 나머지는 주석을 보며 확인!

    2013.04.19_지금까지의 과정정리

    ▶지금까지의 과정 정리(예:ARM칩) 0. 사용하는 칩의 스펙을 확인하기 위해 제조사를 찾아가 칩의 스펙이 나와있는 pdf 파일을 먼저 찾는다. 1. Memory Mapping 을 열어 구성을 확인한다. 2. PIO Controller , 우리가 사용할 핀을 찾는다. 3. Register Mapping 에서 기준주소를 찾는다. (ex : PIO_PER = 0x00 ) 4.' 기준주소 + Offset = 레지스터 주소 추출 ' 를 추출한다. 5. PIO_OER(출력 활성화) , PIO_PER (핀 활성화) 를 이용해서 간단한 LED 를 켜본다. 6. 다음 char LCD 를 활용해보기위해서 char LCD 의 스펙을 찾는다. 7. PIN CONNECTIONS 에 가서 ARM칩과 적당한 PIN 에 맞춰 결선..

    2013.04.18_Instruction SET 설정하기

    Instruction SET 설정하기 Exp : 명령을 입력하려면 PIN CONNECTIONS 에서 RS를 Low 시켜주어야하므로 PIO_CODR 해주어서 Clear 해주었다. Exp : 데이터를 입력하려면 PIN CONNECTIONS 에서 RS를 High 시켜주어야하므로 PIO_SODR 해주어서 SET 해주었다. Exp : 위에 RS 가 0 인 빨간박스부분은 명령(Instruction data input)입력이기때문에 Low 로 다 0 이고,(Pin Connections 참조) RW 가 0 인 부분은 Data write (CPU -> LCM) 해줘야 하기때문에 Low 로 모두 0 인 것이다. Exp: 버스입력부분에 '*' 같은 경우는 앞에 입력을 다 받고 '1' or '0' 을 받아도 아무 상관없음을 ..

    2013.04.17_타이밍도 LCD_write(), LCD_read() 설정하기

    타이밍도에 맞춰서 함수 설정하기 ▶ 헤더에 write operation 함수, read operation 함수 선언해둠 ▶ 0x07FF0000 해도 되지만 일일이 #define 문을 써서 선언해준 이유는 개발자가 알아보기도 쉽고, 나중에 핀을 바꿔서 입력을 해주면 값을 수정하기 쉽기 때문에 #define 문을 써서 선언해두었다.※ 그래서 임베디드에 #define 문이 많이 보임 ① 맨처음 PIO_CODR = LCD_EN, LCD_RS, LCD_RW 를 Low 시켜준부분② ~ ③ 첫번째 for 문③ ~ ④ PIO_SODR = LCD_EN // EN을 High 시켜준 부분④번 직후 DB의 변화를 준 부분 = 두번째 for 문, DB의 쓰레기값을 비워주고 DB에 입력값 넣어줌④ ~ ⑤ 세번째 for 문 Inp..

    2013.04.16_ARM칩_제어전_활성화단계

    소스를 넣기전에 활성화 시키는 단계를 알아보자! LCD_Init() 를 이용하여 Lcd.c 함수를 호출한다. 여기서 LCD_Init() 는 제어하기전 활성화 해주기 위한 함수를 가져온다. LCD_RS or LCD_RW or LCD_EN or LCD_BS(버스) 각각을 PIO_OER(Output Enable Register), PIO_PER(PIO Enable Register) 활.성.화 시켜주기 위한 간략한 소스이다. shift 연산자를 이용하였다. 밑에 나옴. LCD_RS , LCD_RW, LCD_EN 각각은 32비트의 0에서부터 24칸(∵ARM칩의 24번핀 - char LCD 4번핀 연결), 25칸(∵ARM칩의 25번핀 - char LCD 5번..