임베디드 시스템, 프로그래밍 언어, 효율적인 도구 및 기타 컨텐츠에 대한 기본 지식을 요약하십시오.
최근에 친구가 아주 좋은 말을 들었습니다.
iPhone은 OS에서 작동하는 내장 팔이며 Cuda는 이종이 내장 된 것으로 이해할 수 있습니다.
이러한 관점에서, 컴퓨터 과학을 내장에서 분리하고 마이크로 컨트롤러, 팔, FPGA 등과 같은 기술을 호출하고 좁은 기술 분야 만 학습함으로써 어떻게 훌륭한 임베디드 엔지니어가 될 수 있습니까?
기술 문서 및 연구 기록 :
임베디드 시스템 기본 사항 :
기계 학습 :
프로그래밍 언어 :
환경 구성 및 도구 :
이론적 근거 :
이 창고는 내장 필드와 관련된 지식을 오랫동안 업데이트 할 것입니다. 컨텐츠의 일부는 저자의 연구 노트 및 경험 요약입니다. 가지고있는 지식을 요약하고 정제함으로써 지속적으로 더 유용한 기술을 배울 수 있습니다.
최근에는 임베디드 엔지니어의 위치에 대한 새로운 견해가 있습니다.
Electronics 전공 졸업생은 마이크로 컨트롤러 및 마이크로 컴퓨터 원칙과 같은 기계 수준에서 학습을 시작한 다음 C 언어 및 파이썬과 같은 언어 수준으로 이동 한 다음 데이터 구조 및 알고리즘을 학습합니다. 이 경로는 꽤 좋아 보이고 시작하기에 적합하지만이 경로에는 심각한 문제가 있습니다.
임베디드 작업에서 발생하는 문제는 종종 포괄적 인 것이므로 언어 수준이나 알고리즘 수준에서 시작하면 문제를 해결할 수 없으며 때로는 기계 수준으로 깊숙이 들어가야합니다. 따라서 문제는 전체 내장 시스템에 대해 어떤 레벨이 있습니까? 또는 전체 컴퓨터 시스템에 대해 어떤 수준이 있습니까? 전체 지식 시스템 프레임 워크와 위치를 이해하려면 컴퓨터의 구성 원리에 대해 더 깊이 이해해야합니다.
여기에서 추천하는 책은 Randal E. Bryant와 David R. O'Hallaron이 작성한 "컴퓨터 시스템에 대한 심층적 인 이해"의 세 번째 판입니다. 해당 코스는 MOOC 플랫폼에서 Yuan Chunfeng 교수가 가르치는 "컴퓨터 시스템의 기본"과정으로, 전체 컴퓨터 시스템 추상화 계층에 대한 이해를 확립하고 내장 문제를 해결하는 포괄적 인 능력을 향상시키는 데 도움이됩니다.

임베디드 엔지니어는 기술 축적에 충분한 깊이를 가져야합니다.
수년간의 엔지니어링 개발 후, 나는 다양한 프로세서와 접촉했으며 간단한 16 비트 CPU를 직접 설계하고 구현했습니다. 나는 특정 CPU의 사용이 가장 중요한 지식이 아니라는 것을 점차 깨달았지만 더 중요한 내용은 컴퓨터 구성 및 컴퓨터 아키텍처 (X86 ARM RISC-V)의 원칙입니다. 컴퓨터 기본 지식에 대한 깊은 이해를 통해 새로운 컴퓨팅 하드웨어를 학습 할 때 동일한 크기를 이해할 수 있으며 GPU, TPU 및 NPU와 같은 새로운 이질적인 컴퓨팅 기술을 배우기가 너무 어렵지 않습니다.
다양한 프로그래밍 언어는 엔지니어를위한 필수 도구입니다. 만약 내가 새로운 프로그래밍 언어를 끊임없이 배울 필요가 있는지 여부를 말하면 대답은 그렇습니다. 그러나 가장 중요한 것은 프로그래밍 언어 자체가 아니라 언어 디자인 아이디어와 해당 시나리오는 컴파일 원칙과 같은 프로그래밍 언어를 만드는 데 사용되는 기본 지식입니다. 프로그래밍 언어의 배후에있는 것을 이해하고 새로운 언어를 배우고 사용하는 것은 매우 쉬워집니다.
빠른 포지셔닝 시스템의 문제는 모든 임베디드 엔지니어에게 필요한 기능이므로 효과적으로 디버깅하는 방법은 무엇입니까? 나는 한때이 문제를 진짜 전문가 동료와 논의했고, 그는 말했다 : 나는 주로 생각에 의존한다고 말할 수 있습니까? 이 대답은 분명히 너무 짧지 만 디버그는 실제로 생각에 기초한다는 것을 인정해야합니다.
최근에 나는 "어떻게 해결하는 방법"이라는 책을 읽었으며, 이는 나에게 영감을 주었고 이것이 버그를 해결하는 과정이 수학 문제를 해결하는 것과 매우 유사하다는 것을 깨달았습니다.
엔지니어들이 디버깅 기능을 향상시키고 싶다면이 문제에 대해 종종 생각해야합니다.이 솔루션은 실현 가능하고 정확한 것처럼 보이지만 어떻게 그러한 솔루션을 생각할 수 있습니까? 이 실험은 실현 가능한 것처럼 보이지만 사실 인 것 같습니다. 그러나이 사실은 어떻게 발견 되었습니까? 그리고 어떻게 그들을 생각하거나 직접 발견 할 수 있습니까? 직장에서는 다양한 버그의 솔루션을 이해하기 위해 최선을 다할뿐만 아니라이 솔루션의 동기와 단계를 이해하고 이러한 동기와 단계를 다른 사람들에게 설명하기 위해 최선을 다해야합니다.