오늘 저는 Zhihu에서 인기 있는 임베디드 관련 질문을 공유합니다. Linux 학습을 권장하기 전에 STM32를 배우려면 무엇을 배워야 합니까?
아주 좋은 답변:
“
작가: 스노우드림
링크: https://www.zhihu.com/question/357775329/answer/2338874463
”
임베디드 소프트웨어 개발 분야의 숙련된 프로그래머로서 응답자는 STM32 개발에서 Soc+Linux 개발까지의 기술 스택 전환 프로세스도 경험했습니다.
일반적으로 stm32 임베디드 개발 기술을 보유하면 Soc+Linux의 임베디드 개발을 마스터하는 데 도움이 됩니다
具备stm32嵌入式开发技能对于掌握Soc+Linux的嵌入式开发有一定的促进作用
,但是如果题主志在走向Linux应用开发道路, 那么stm32的开发技能并不一定非要全部掌握
. 그러나 주제가 Linux 애플리케이션 개발로 나아가는 것을 목표로 하는 경우 그러면 stm32의 개발 기술이 꼭 필요한 것은 아닙니다. 모두
응답자의 개인 스킬 스택 전환 경험을 바탕으로 以下技能通常是stm32和Linux嵌入式应用开发所共有的,换句话说是可以复用的技能
임베디드 개발의 경우 현재 주류 코딩 언어는 여전히 C 언어입니다. 이는 stm32의 경우에도 마찬가지이며 Linux의 경우에도 마찬가지입니다. 유일한 차이점은 Linux 임베디드 개발에는 소켓, 잠금 등과 같은 일부 Linux 라이브러리 기능 API가 포함되는 경우가 많다는 것입니다.
필요할 때 사용하세요. 따라서 stm32 개발 프로젝트가 충분하다면 일반적으로 C 프로그래밍 기술을 직접적으로 물려받을 수 있습니다.
애플리케이션 개발의 핵심은 요구 사항을 이해하고 적절한 기능 단위를 설계하거나(다른 모듈에 API 인터페이스 제공) 요구 사항에 따라 적절한 제어 논리 알고리즘을 설계하는 것입니다. 요구 사항에 대한 이러한 이해와 모듈 및 알고리즘 설계 능력은 stm32 프로젝트에서도 경험할 수 있으며 Linux 애플리케이션 개발을 위한 기반을 제공할 수 있습니다.
Linux 애플리케이션 개발과 stm32
의 가장 큰 차이점은 무엇인가요?너무 많은 스레드와 상호 배제 보호라는 아이디어가 첫 번째 선택이 될 것입니다. Linux 개발 세계에서 스레드와 프로세스는 분리될 수 없으며, 공유 리소스의 상호 배제 보호도 분리될 수 없습니다. 하지만 stm32 개발에 RTOS가 관여하지 않는다면 RTOS의 멀티 태스킹 사고를 배워야 합니다.
멀티태스킹과 멀티스레딩은 논리가 매우 유사하므로 RTOS 멀티태스킹 사고를 통해 Linux 멀티스레딩, 멀티프로세스 및 상호 배제 보호 학습 및 숙달을 크게 촉진할 수 있습니다. 🎜
stm32 MCU는 매우 강력한 주변 장치 및 내부 라이브러리 지원을 갖추고 있어 일부 통신 프로토콜 스택을 학습하는 데 매우 유용합니다. **可能有的朋友说,我不做Linux驱动,没有必要学习什么UART,IIC,SPI,DMA,TCP/IP,RapidIO等硬件通信协议。这种想法是不对的
** .
이런 종류의 프로토콜 스택 기반을 갖추는 것은 향후 애플리케이션 개발에 항상 유용할 것입니다.
많은 Linux 애플리케이션 개발에서 피청구인은 다른 임베디드 시스템과 통신하는 기능 유닛의 개발 및 자체 통신 프로토콜의 설계에 참여했습니다. 예를 들어 UART 프로토콜을 이해하지 못하면 설계할 방법이 없습니다. 귀하의 계약서입니다. RapidIO 프로토콜을 이해하지 못하는 경우 다른 단일 보드의 CPU와 어떻게 통신할 수 있습니까? 드라이버 동료가 드라이버에 대해 도움을 주겠지만, 상위 계층 로직이나 문제 위치를 이해하면 항상 도움이 됩니다. 프로토콜 스택.
그러므로 요약하자면, 임베디드 리눅스 개발을 배우기 전에 stm32에 능숙할 필요는 없습니다. 위 4가지 사항에 stm32가 축적되어 있다면 임베디드 리눅스 애플리케이션 개발을 시도해 볼 수 있습니다.
위 내용은 Linux 학습을 권장하기 전에 STM32를 배우려면 무엇을 배워야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!