1, 5 1 개발 ARM 파악
내 자신의 개인적인 견해: 5 1 은 기초이지만, 또한 중요하다. 이것은 내가 ARM 을 보고 느낀 것이다. 팔 학습 속도를 높일 수 있습니다. 정말로요! 나는 너를 믿지 않는다. 한번 해 보세요.
속도와 효율성을 요구하는 사람은 쓸데없는 일을 하지 말고 주변의 매 순간을 붙잡아라. 사람은 살아 있고, 물건 (지식, 책) 은 죽는다.
2.ARM 은 어떻게 시작하나요?
먼저 ARM 의 발전에 대해 이야기하겠습니다.
훌륭한 직업이라고 할 수 있습니다. 각 회사의 홈페이지를 열면 채용에 포함된 직위가 엔지니어 직위의 절반 이상을 차지한다. 넓은 의미의 임베디드 시스템은 몇 가지뿐이다: 전통적인 5 1, AVR, PIC 는 임베디드 마이크로컨트롤러라고 한다. ARM 은 임베디드 마이크로프로세서입니다. DSPFPGA. 객관적으로 말하자면, DSP 는 ARM 보다 더 많이 필요하고, ARM 과 FPGA 는 비슷하다. 디지털 처리 및 통신 분야의 전례 없는 발전으로 DSP 는 MP3 카메라에서 우리 군수 제품의 컨트롤러에 이르기까지 광범위하게 응용되고 있습니다.
주목할 만한 점은 구직 중 기업 (잘 알려진, 작지 않은) 이 단순한 ARM 하드웨어 개발 엔지니어에 대한 중시가 단일 칩 마이크로 컴퓨터보다 높지 않다는 점이다. 직위에' ARM 개발 우선 순위' 라고 적힌 대기업은 거의 없다. 당신은 무엇을 더 많이 썼습니까? 저는' 임베디드 리눅스' 가 여기 있는 것을 볼 수 있다고 믿습니다. 필요한 것은 하드웨어의 소프트웨어이다.
둘째, ARM 은 하드웨어입니까, 소프트웨어입니까?
ARM 이 하드웨어이고 리눅스가 소프트웨어라고 말하기는 어렵다. ARM 의 하드웨어 대부분은 모듈화되어 있습니다. 만약 내가 이렇게 판을 바꾼다면, 더욱 사람을 감동시킬 것이다. 이것은 또한 ARM 의 전략이다. 나는 또 탄복했다. 사실, 리눅스의 개발은 점점 더 시간이 많이 걸리고 있다. 이와 관련하여 ARM 은 소프트웨어여야 합니다.
일자리를 구할 때는 더욱 그렇다. 예를 들어 Lenovo 에서는 ARM 에 가장 가까운 "BIOS 엔지니어" 가 소프트웨어이고, MOTO 에서는 임베디드 LINUX 엔지니어와 가장 가까운 것이 소프트웨어입니다. 많은 다른 회사들이 임베디드 제품 개발을 하드웨어로 분류합니다. 그래서 이것은 논의되지 않습니다. 자신의 보드를 잘 노는 것이 관건이다. 네가 정말 불쾌할 때' 임베디드 개발 엔지니어' 라고 자칭한다.
넷째, 5 1 AVR 과 같은 단일 칩 마이크로 컴퓨터 기반을 갖고 싶습니까?
더 좋고 없어도 상관없다.
5. 개발이 배워야 할 소프트웨어는 무엇입니까?
요약하면, 주로 다음과 같은 종류가 있다.
1, 광고 디버깅
정확히 광고 +AXD 입니다. 광고에 AXD 가 포함되어 있습니다. 원래 모두 SDT 를 사용했습니다. 이후 ARM 은 SDT 를 더 이상 지원하지 않고 ADS 를 지원했습니다. 광고를 사용합시다.
어떤 사람들의 프로그램은 여전히 SDT 버전으로 출시되지만, 기본적으로 상응하는 광고를 찾을 수 있다. 새로 온 사람은 여기서 혼란을 느껴서는 안 된다. ADS 는 컴파일러이고 AXD 는 디버거입니다. ARM 의 RAM 에서 디버깅하는 것은 AXF 만큼 싸다.
2, PLASHPGM
플래시 레코딩 소프트웨어. AXD 는 RAM 에서 디버깅하면 전원이 꺼지고 프로그램 수정이 용이합니다. 디버깅한 프로그램을 플래시로 다운로드하여 전기를 직접 작동시키다.
FLUTED, FLSHP 와 같은 유사한 소프트웨어가 많이 있지만 FLASHPGM 이 가장 좋습니다. 만약 누군가가 여전히 FLASH 가 BIN 형식 파일을 지원하지 않는다는 질문을 한다면, 내 PLASHPGM 을 봐라.
3.BANYANT 디버그 에이전트 (이름이 맞는지 모르겠다. 나는 보통 그것을 "반 양" 이라고 부른다. 왜냐하면 나는 그것이 그 해에 구운 양만 먹었다는 것을 알고 있기 때문이다.
디버그 에이전트는 원래 판매 가격 1K 의 JTAG 에뮬레이터의 대부분의 기능을 더 간단한 JTAG (저렴한) 로 실현할 수 있도록 도와주는 데 사용됩니다. JTAG 디버깅 원리는 나의 또 다른 설명을 참조하십시오. 자신을 위해 만든 JTAG 드라이버를 간단히 이해하십시오. 디버깅 에이전트에는 H-JTAG, ARM7 과 같은 여러 가지가 있습니다 (구체적인 이름은 알 수 없고 실행 파일만 ARM7 이라고 합니다. EXE), 그리고 BANYANT 가 더 좋습니다. 디버깅 에이전트 설치 방법 중 어느 것도 간단하지는 않지만 모두 다르므로 설명이 필요하다는 점에 유의해야 합니다. 및 AXD 는 디버깅 전에 실행해야 합니다. 돈을 아끼기 때문에 번거로움을 두려워하지 않는다.
4, ARM-ELF-TOOLS 도구 체인
UCLINUX 는 ARM-ELF-GCC 와 같은 도구를 개발했습니다. 도구 체인은 많은 도구를 패키지화하고 개발을 위해 게시하는 것입니다. 구체적인 설치 방법은 나의 다른 노트를 참조하십시오. 또한 LINUX 를 개발하려면 ARM-LINUX-TOOLS 를 사용해야 합니다. 달리 통용되지 않습니다.
5, u 타입 부츠
잘 알려진 부트로더 생성 도구는 이미혜 (이름이 애매모호하다 ~ ~) 가 있는 것 같다. 생성된 부트로더는 플래시로 굽고, 부트로더로 다른 것을 다운받아 구울 수 있다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 성공명언) UCLINUX 를 다운로드하려면 부트 로더가 필요합니다. 부트 로더는 컴퓨터의 BIOS 와 같습니다. 물론 UCOS 는 이것을 필요로 하지 않으며 무엇을 사용해야 할지 모릅니다.) 최신 버전은 1. 1.4 입니다. 구체적인 용법은 제가 따로 참고해 드리겠습니다.
6.UCLINUX 패키지
UCLINUX 소스 코드 패키지, 말할 필요도 없지? 먼저 기성 경험을 사용한 다음 직접 재단을 컴파일하는 것이 좋습니다. UCLINUX 만의 편집 기술은 비교적 간단하지만 관련된 면은 비교적 넓기 때문이다.
7, VMWARE
구식 가상 머신 소프트웨어는 가상 머신에 리눅스 (PC 에 사용) 를 설치하면 기계를 앞뒤로 전환하는 번거로움을 덜어줍니다. VMWARE-TOOLS 를 설치하는 것을 잊지 마십시오. 설치 방법은 나의 다른 노트에 있다.
6. 어떤 책 추천이 있습니까?
나는 주로 ZLG 의 책 세 권을 추천한다. 이 세 권의 책과 인터넷이 있으면 나는 다른 책이 필요하지 않다. 그중에서 나는 주로 처음 두 권의 책을 추천하는데, 세 번째 소개구조는 그런대로 괜찮다.
1, ARM 임베디드 LINUX 시스템 구축 및 구동 개발, 북항공판, 구동서 상세, 선행 개발 소개도 좋습니다.
2, ARM 임베디드 시스템 실험 자습서 (2), 북항공판, ZLG2200 구조도, 실험 절차 및 노트, 사람들이 어떻게 개발했는지 알아보세요.
3, ARM 임베디드 시스템 기본 수업, 가장 중요한 것은 아키텍처, 어셈블리 부분 소개, 보고, 이론적 소양을 늘리는 것입니다.
4.44B0 데이터 브로셔는 그것의 중요성을 강조하기 위해 여기에 적혀 있다.
ZLG 초기 홍피 ARM 구조는 추천하지 않습니다 ~ 수업만 하고 문필이 너무 많아서 지겨워요. 다른 몇 권의 책은 본 적이 없다. 좋은 것을 본 적이 없다. 너는 몇 가지 추천을 본 적이 있다.
일곱, UCOS 선택? UCLINUX? 리눅스? VXWORKS? 또는 단일 칩 마이크로 컴퓨터로 사용하십시오.
1, 개발, 엔지니어링 설계, UCOS 사용, 소형, 멀티프로세스, 단순성, ARM7 의 정수 구현
2.LINUX 임베디드 시스템은 LINUX 소비 및 통신 분야에서 널리 사용되지만 ARM9 가 작동해야 한다는 단점이 있습니다. ARM9 의 카드는 스스로 할 수 없습니다. 6 층판이 너무 비싸요. 개발판 1K 터치를 사다. 그러나 ARM9+LINUX 를 선택하는 것이 좋습니다.
3, UCLINUX 는 투기 임베디드 시스템입니다.) ARM7 에서 실행할 수 있습니다. 왜냐하면 당신은 리눅스의 가까운 친척이 있기 때문에 리눅스로 쉽게 이동할 수 있습니다. 저 같은 빈털터리처럼 쓰실 수 있습니다. ᄏ
4, VXWORKS, 잘 배우면 고임금 일자리를 찾을 수 있지만, 일자리 자체는 리눅스보다 좋지 않다.
5. 내가 존경하는 ZLG 가 계속 호소하고 있지만, 그것을 단일 디스크로 사용하지 않는 것이 좋습니다. 학습을 위해 다중 프로세스 시스템 설계는 ARM7 의 머리이기 때문에 최소한 전체 UCOS 가 필요합니다.)
어떤 친구가 먼저 이것을 기초로 배울 수 있냐고 물었다. 물론 ~ ~ 하지만 저는 1 주가 걸려서 해냈습니다. 제가 먼저 RAM 에서 광고를 디버그한 메모입니다. 그럼 내가 플래시를 청소 하는 데 사용 되는 애플릿은 내가 쓴 LED 플래시 프로그램입니다. 또한 1 주에 나는 너무 많이 먹어서 OM 을 잘 설치하지 않아 어레이 실패를 초래했다. 이것은 반드시 해야 할 일이지만, 그것은 지나갔다. 더 먼 곳을 겨냥하다.
여덟, 공부하는 데 얼마나 걸립니까?
나는 지금 초보를 한지 두 달이 넘었는데, 몇 번이나 방해를 받은 적이 있다. PCB 설계 및 제판, RAM 디버깅, 플래시 다운로드, UBOOT 이식 및 다운로드 UCLINUX (클립되지 않음, 기성품), LCD 드라이브도 해봤습니다. 솔직히 말해서: 저는 정말 음식을 비교합니다. 나는 이것이 모두를 부러워하기 위해서가 아니라, 단지 너에게 "너는 이것보다 더 좋아야 한다" 고 말했을 뿐이다. 나는 좋은 마음가짐+적절한 방법+시기적절한 총결 = 결과!
9.ARM 은 무엇을 가지고 놀아요?
그냥 몇 시예요?
1, 하드웨어 설계
2. 시스템 마이그레이션
3. 개발 촉진
4. 응용 프로그램 개발
없어졌어요. 이 중 앞으로 두 가지 위주, 3 어려움, 4 유연성, 가장 중요한 것은 일자리를 찾는 것을 제안한다.
XI. 발색법
내 개발 프로세스는 다음과 같습니다.
1, 설계도 (흔들림이 있는 JTAG 진리계)
2. 디자인 PCB (흔들림기가 있는 JTAG 진리계)
3, 제판
4, 용접 전압, 전압에 문제가 없는지 확인하십시오.
5. 용접 44B0+JTAG 회로 +WIGGLER 의 JTAG 진리계+주변 회로, BANYANT+ 에뮬레이터를 연결합니다. BANYANT 는 오류를 표시하지만 44B0 이 될 수 있음을 나타내는 0x0f0f0f0f0f0f 와 같은 44B0 의 숫자를 표시할 수 있습니다.
6. 용접 결정진 +RAM+ROM+ 주변 회로, BANYANT+ 에뮬레이터를 연결하면 정확한 44B0 이 표시됩니다.
7. BANYANT+ emulator 연결을 사용하여 AXD 를 열고 명령줄 창에서 RAM 을 조작하여 수정할 수 있는지 확인합니다. 가능하다면 (메모리 창에 RAM 주소가 표시됨) RAM 은 괜찮습니다. 이 명령 "setmem0xc0000000, 0xffffffff, 32" 를 사용할 수 있습니다. 제 RAM 이 뱅크 6 에 걸려 있어서 주소는 0xc000000 입니다. 고치면 고쳐야 한다.
8. 내가 쓴' C 프로젝트 템플릿과 명령어 하나 썼어' 라는 방법으로 프로그램을 디버그한다. 간단한 것을 쓰다. 저는 LED 깜박임을 썼습니다. 쓸모가 있는지 보자.
9. 플래시 레코딩의 요약에 따라 프로그램을 플래시로 태워 테스트합니다.
10, UBOOT 마이그레이션 작업에 따라 UBOOT 마이그레이션.
1 1. UCLINUX 다운로드에 대한 간단한 지침에 따라 UCLINUX 를 다운로드합니다.
12. 드라이브 개발 방법을 보고 직접 드라이브 쓰기.
13, 놀 수 있는 게 많아요.
열두. JTAG 진리계 정보
JTAG 진리계는 대부분 간단한 판자, 244 형, 아무런 문제가 없다. 병렬 포트의 정의에 따라 WIFFLER 정의를 선택하는 것이 좋습니다. 지원되는 소프트웨어가 많기 때문입니다. 이 인터넷에는 많은 것들이 있어서 많이 말하지 않는다. 흥미롭게도, 일부 JTAG 진리계는 신호를 재설정할 수 있도록 구조도에 점퍼가 있어 일반적으로 점프하지 않는다. JTAG 프로토콜 자체도 44B0 재설정을 제어할 수 있으므로 리셋 신호를 사용하지 마십시오. 물론 발판에 신호 점퍼를 재설정할 필요도 없습니다.