본문 바로가기

Embedded

보드를 살려보자-5 저 자 : 유영창 출판일 : 2003년11월호 == start.S 어셈블러 에서 가장 먼저 보이는 것은 (1)인데, 이렇게 선언되면 이후 코드의 어드레스 영역이나 기타 조건은 링커 스크립트에 선언된 .text라는 선언에 영향을 받는다. 일반적으로는 프로그램 코드 영역을 의미한다. 하드웨어 리셋이 발생하면 ARM은 0x00000000번지의 명령을 수행한다. 이 번지는 링커 스크립트에 의해서 _start 라벨에 맵핑된다. 좀더 정확히 말하면 링커 스크립트에서 .text에 대해 0x00000000번지에 할당되어 있기 때문이고 _start 라벨이 가장 먼저 기술되었기 때문이다. 이 _start가 0x00000000번지이기 때문에 이 라벨 이후에 인터럽트 벡터 테이블이 들어간다. 그래서 각 벡터 테이블이 수행할 .. 더보기
ARM 부트로더 제작기 보드를 살려보자-1 저 자 : 유영창 출판일 : 2003년11월호 임베디드 시스템에서 하드웨어 설계가 끝나고 제작 후 샘플 보드가 나왔을 때 가장 먼저 하는 것이 보드에 대한 검증이다. 필자가 다니는 회사에서는 이것을 ‘보드 살리기’라는 말로 표현한다. 이 보드 살리기는 운이 좋으면 바로, 운이 나쁘면 언제 끝날지 모르는 피 말리는 시간이 필요하다. 이런 현상이 발생하는 이유는 문제의 원인이 하나가 아니고 여러 가지가 혼재하기 때문이다. 어떤 문제를 해결하는 가장 빠른 방법은 문제의 종류를 구분하는 것이다. 그런데 이 경우에는 이 자체도 매우 어렵다는 것이다. 하드웨어 문제인가? 소프트웨어 문제인가? 때문에 보드 살리기에 필요한 과정을 살펴보고 부트로더와의 관계를 살펴보자. 연+재+순+서 1회 2003.10 | 임베디드 프.. 더보기
임베디드 프로그래머와 부트로더-5 저 자 : 유영창 출판일 : 2003년 10월호 == ARM 프로세서 PXA255는 앞서 언급했듯 ARM 계열이다. 삼성이나 다른 회사에서 만든 프로세서가 ARM 코어를 라이선스한 것과는 다르게 아예 설계 자체를 사서 인텔 자사의 기술을 더한 프로세서이다. 그러나 결국은 이것도 개발자 입장에서 보면 ARM의 한 계열로 봐도 무방하다. 이 프로세서를 이해하면 ARM 코어를 사용하는 다른 프로세서들도 어느 정도 이해가 가능하다 그렇다면 ARM이란 것은 어떤 것일까? 아무래도 이 연재가 ARM용 부트로더를 작성하기 위한 것이므로 ARM 프로세서에 대해 모르고 갈 수는 없다. 그래서 ARM에 대해 잠깐 살펴보자. 우리가 알고 있는 펜티엄은 인텔에서 제작하고 있는 프로세서이다. 하지만 ARM에서 만든 ARM 프로.. 더보기
임베디드 프로그래머와 부트로더-4 저 자 : 유영창 출판일 : 2003년 10월호 == 상태 표시·메시지 표출·명령 입력 및 처리 기능 보드를 시험하는 과정에서 진행된 위치나 상태를 알려주는 기능은 거의 필수적이다. 예전에 동료 한 사람이 펌웨어 프로그램에 자칭 청진기 기능이라고 하는 메모리나 기타 상태를 보여 주는 기능을 항상 넣어 놓고 프로그램을 디버그했다. 당시에는 에뮬레이터가 일반화되어 있지 않기 때문에 이런 기능을 넣어야 했다. 지금도 상황에 따라 이런 기능을 넣어야 프로그램 디버깅이 편하다. 초기에 시리얼 디바이스 초기화가 힘든 상태에서는 LED를 점멸시키거나 LED를 이용해 진행 표시를 한다. 이후 시리얼 디바이스가 초기화되면 시리얼 디바이스를 이용해 프로그램 상태나 기타 메시지를 표출한다. 또한 특정한 문자열을 입력받은 후.. 더보기
임베디드 프로그래머와 부트로더-3 저 자 : 유영창 출판일 : 2003년 10월호 == 리눅스 커널의 구동 환경 앞서 잠깐 언급했지만 임베디드 시스템에서 리눅스 커널이 원활하게 동작하기 위한 최소 조건이 있다고 했다. 물론 절대적인 것은 아니지만 필자의 현장 경험상 다음과 같은 조건은 충족돼야 한다. ◆ 32비트 프로세서 ◆ 8MB 램(일반적으로 SDRAM을 사용한다) ◆ 8MB 롬(일반적으로 플래시를 사용한다) ◆ 시리얼 포트 1개 이 정도 사양만 있어도 리눅스 커널이 동작한다. 더 이하 사양의 시스템에 리눅스 커널을 올려 동작시킬 수도 있지만 응용 프로그램이 조금만 커져도 문제가 발생하고 프로그램 작성시 상당한 주의를 요한다. 여기에 한 가지 더 조건을 붙인다면 MMU(Memory Management Unit) 즉 메모리 관리 장치의.. 더보기
임베디드 프로그래머와 부트로더-2 저 자 : 유영창 출판일 : 2003년 10월호 == 임베디드 시스템 개발자의 고민 필자가 다니는 회사의 한 개발자는 처음 배운 프로세서가 32비트 원칩 프로세서이다. 특정한 장비 개발 건으로 8비트 원칩을 다룰 일이 생겼는데 프로세서 매뉴얼을 보더니만 씨익 웃고서 “정말 간단한 구조를 가졌네요” 하는 것이다. 필자는 조금 놀랐다. 왜냐하면 예전에 8비트 원칩을 보고 매우 복잡하다는 생각을 많이 했기 때문이었다. 물론 이전에는 Z-80이나 6502 같은 좀더 단순한 프로세서만 보다가 8비트 원칩을 보았기 때문이기도 하다. 문제는 필자와 같이 기존 8비트 원칩 프로세서를 다루던 개발자들이 32비트 원칩 프로세서를 보면 매우 복잡해 보인다는 것이다. 8비트 원칩 프로세서가 다루던 4MHz와는 차원이 다르게 .. 더보기
임베디드 프로그래머와 부트로더-1 임베디드 프로그래머와 부트로더-1 저 자 : 유영창 출판일 : 2003년 10월호 필자는 이 세상에 PC라는 시스템이 나오기 전에는 임베디드 시스템이라는 구별이 따로 없었던 것으로 기억한다. 또 한 가지 ‘펌웨어’라는 단어도 별로 사용하지 않았다. 그러다가 PC가 나온 후 어느 정도 시간이 지나면서 임베디드 시스템이라는 말이 사용되기 시작했고 또한 펌웨어라는 단어를 접하게 되었다. 임베디드(embedded)를 인터넷의 야후 사전에서 찾아보면 이렇게 나온다. embed[imbd, em-] vt. (-ded; -ding) [1] 깊숙이 박다, 파묻다 [2] (마음 속 등에) 깊이 간직하다((in)) [3]【언어수학】 끼워 넣다 임베디드 시스템을 통상적으로는 내장 시스템이라고 말한다. 하지만 필자는 PC 이외.. 더보기
ARM 코어 프로세서는 뭔가...?? [ARM 의 정의] ARM은 Advanced RISC Machine 의 약자다. 말그대로, 임베디드시스템에 들어가는 저전력, 고성능의 기기다. 여기에는 고성능의 RISC(Reduce Instruction Set Computer)가 들어간다. 아주 많은 기업체들이 이를 지원하고 있다. ARM Architecture - ARMv5TE, ARMv5TEJ, ARMv6 ARM Microarchitecture - ARM9, ARM10 코어 ARM Mictoprocessor - 사용하고자 하는 용도에 맞게 ARM Microarchitecture 기반 칩이다. 참고 - 이름중 T는 16bit thumb 명령 지원 [ARM의 특징] 가장... 좋은 점은 전력소모가 적다. ARM7의 경우 내부 32bit 데이터 버스/어드.. 더보기
winIDEA, POD winIDEA V9.4 File .EXT Version Size (MB) Date Description winIDEA 9.4 new Manual 9.4 2.2 3/31/2004 winIDEA V9.4 - Software manual Hardware 9.4 new Manual 9.4 3.2 3/31/2004 iC181 / iC1000 / iC2000 / iC3000 / iC4000 / REmulator / iLA128 - Hardware manual POD Descriptions Title Date Description 8051.pdf 01/24/2001 POD Description 8085.pdf 01/24/2001 POD Description 80186.pdf 01/24/2001 POD Descript.. 더보기
라인트레이서_센서부 회로도. 출처 : http://cafe.naver.com/okh0217 더보기
80c196kc 보드 회로도 (모터,센서,보드) 80c196kc 보드 회로도 (모터,센서,보드) 더보기
Dynamic Display 7segment 사용 회로도 출처 : http://cafe.naver.com/okh0217 콘트롤러에서 TMR0 등을 이용하여 예컨대 1mS마다 인터럽트가 걸리게 하고 매번 LED 하나씩 Display합니다. 위의 회로의 경우, 처음에는 Q1,Q2,Q3를 모두 OFF한 상태에서 단단위 값을 Port-B로 출력합니다. 켜줄 Segment를 Low로 합니다. 그다음, RA2를 Low로 해서 Q3를 ON시킵니다. 1mS 후 RA2를 High로 해서 Q3를 OFF시킨후, 10단위의 값을 Port-B로 출력하고, RA3를 Low로 해서 Q2를 ON시킵니다. 1mS 후 RA3을 High로 해서 Q2를 OFF시킨후, 100단위의 값을 Port-B로 출력하고, RA4를 Low로 해서 Q1을 ON시킵니다. 1mS후 위의 과정을 계속 .. 더보기
롬 에뮬레이터 회로도 롬 에뮬레이터 회로도 더보기
L298 을 이용한 DC MOTOR DRIVE 회로 http://blog.naver.com/okh0217/60018439501 더보기
AVR실습시계회로도 AVR실습시계회로도 더보기