자신 만의 라이브러리를 만드는 것은 매우 간단합니다. 레지스터 사양 문서는 대부분의 주변 장치가 설정하기 쉽지는 않지만 매우 좋습니다. 그들의 라이브러리를 사용하는 것이 훨씬 더 고통 스럽습니다. 그러나 아마도 그것은 단지 나일 것입니다. 이것은 st, nxp, ti, atmel에게는 몇 가지 이름이 있습니다 (인텔 및 마이크로 칩에는 그다지 중요하지 않습니다).
왜 그들은 도서관을 바꾸고 여러 가지 이유가있을 수 있으며, 일부 새로운 상사가 인수하고, 일부 부서는 다른 사업부를 인수했습니다. 마케팅은 제품에 대한 새로운 이미지를 원했습니다. ElectronS가 언급했듯이, 베어 메탈을 기꺼이 할 수 없거나 할 수없는 사용자를 끌어 들이기 위해 하드웨어에서 더 멀리 추상화하려는 시도 일 수 있습니다. 나는 그것에 대해 더 나아가서 아마 Arduino 현상과 경쟁하려고한다고 말합니다. 어느 mbed와 다른 모든 사람들이 항상 시도하고 실패했습니다 (Arduino 이전에도).
어쨌든 하드웨어에서 멀어 질수록 부풀어 오르고 느려지기 때문에 단위 당 rom, ram 및 mhz에 더 많이 소비해야합니다. 프로그래밍에 같은 시간을 소비 할 수 있습니까? 그냥 다르게 해?
당신은 PIC 세계에서 왔다고 말합니다. 이제 그들은 도구로 괜찮은 일을했고 칩 문서는 끔찍했습니다. 그들은 라이브러리와 샌드 박스로 보상했습니다.
하루가 끝나면 다양한 옵션을 시도하고 경쟁 제품을 사용하여 도구를 비교하십시오. 그것이 의미가 있는지 확인하고 물건을 컴파일 할 수 있는지 확인하기 위해 많은 것을 무료로 할 수 있습니다. 아마도 명령어 세트 시뮬레이터를 사용할 수도 있습니다. 당신에게 맞는 것을 찾으십시오.
미리 준비된 라이브러리가없는 옵션은 항상 사용할 수 있습니다. 어떤 툴체인을 사용할 수 있는지, 어떤 호스트 운영 체제, 어떤 IDE, 편집기 등으로 제한되지는 않습니다. 부품 측면에서 옵션이 극도로 제한되어 있으면 부품을 프로그래밍하는 데 도움이 될 수 있습니다. 다른 칩으로 이동하십시오. 또는 가능하다면 공급 업체.
이와 같은 칩 제품을 판매하기 위해서는 모든 것이든지 또는 결합 된 무료 제품이든 개발 환경을 제공해야합니다. 그리고 그들은 일종의 도서관을 모으는 경향이 있습니다. 그것은 단지보기 만하면 좋을뿐 아니라 LED 예제는 경영진이나 하드웨어 팀이 제품을 디자인 할 수있을 정도로 잘 작동해야합니다. 그런 다음 보드 제품이 소프트웨어를 통해 벽에 던져 질 때 도착하거나 도착하지 않습니다. 그것이 거의 효과가 있지만 칩 벤더에게는 큰 승리가 아니라면 이제 마지막 부분에 대한 기술 지원 비용을 지불하게됩니다. 따라서 거의 거기에 있지만 완전히 그렇지 않은 것이 그들의 최선의 이익입니다.
칩 벤더는 설계에서 이길 수있을 정도로만 좋아야합니다. 신규 및 기존 고객을 유치하기 위해 제품을 계속 개선 (? 변경)해야합니다. 그래서 그들은 계속 지원하고있는 얼마나 많은 이전 라이브러리들과 얼마나 많은 선행 라이브러리들을 가질 것입니다. 따라서 익숙한 라이브러리는 결국 사라질 것입니다. 따라서 적응하는 법을 배우십시오 (또는 자신의 물건을 사용하지 말고 자신의 것을 가십시오. 무한하게 지원할 수 있습니다). 이상적으로는 제품 당 한 번만 응용 프로그램을 개발하고 펌웨어를 완벽하게 만들면 (타사 라이브러리를 사용하는 경우 행운을 빕니다), 다시 찾아서 툴체인을로드 할 컴퓨터를 찾을 필요가 없습니다. 그 사본을 복사하고 오래된 라이브러리를 사용하는 방법을 기억하십시오. 소스 코드를 저장해야 할뿐만 아니라 모든 도구와 문서를 저장해야합니다.
그들의 라이브러리는 일반적으로 하나의 툴체인, 하나의 두 IDE에서, 때로는 Windows 및 특정 버전에서만 지원됩니다. 다시 말하지만 자신의 일을하는 경우 ARM에는 적용되지 않는 제한 사항이 없습니다. 라이브러리의 모든 / 모든 라이브러리를 읽고 어떻게 작동하는지 확인할 수 있습니다. 그러나 그것은 종종 매우 무섭습니다. 그들은 A 팀 개발자를 도서관에 사용하지 않습니다. 인터뷰 후보자 에게이 코드의 문제점을 묻기 위해 몇 줄의 코드를 추출했습니다.
실리콘 측면과 소프트웨어 측면 모두에서 시간과 노력을 절약하기 위해 종종 동일한 IP를 재활용하므로 주변 장치가 칩 중 하나에서 어떻게 작동하는지 알게되면 다른 많은 칩에서도 동일한 방식으로 작동합니다. 예. 시계 시스템은 라이브러리 유무에 관계없이 까다로울 수 있습니다. 칩을 브릭 킹 할 가능성이 높습니다. 즉, 대부분의 칩 / 보드 브릭 킹이 발생했습니다. 칩이 리셋되는 동안 칩이 작동하는 방식을 이해하는 데 도움이됩니다 .AVR은 대부분은 아니지만 칩을 리셋하는 동안 다시 프로그래밍 할 수 있으므로 다시 프로그래밍하는 데 필요한 핀을 엉망으로 만들거나 다시 프로그래밍하는 데 필요한 로직을 중단시키는 잘못된 코드 문제는 칩을 다시 프로그래밍 할 수 있다는 것입니다. 이러한 공급 업체 중 일부 (하나는 하나임)에는 스트랩을 사용하여 선택할 수있는 내부 부트 로더 (예 : 세계에서는 BOOT0)가 있습니다.
하나의 크기는 모든 사람에게 잘 맞습니다. 소프트웨어의 경우 특히 그렇습니다. 따라서 하드웨어를 추상화하려는 시도는 느리고 부풀어 오른다. 더 큰 칩을 얻고 리눅스를 실행할 수도 있습니다. 그러나 이것의 많은 부분은 개발자의 결과이며, 손을 더럽 히고 싶지 않기 때문에 기본적으로이를 요구했으며 공급하려고합니다.
다시 말하지만 st 또는 한 공급 업체에 얽매이지 마십시오 (너무 늦고 관리 및 하드웨어 팀이이를 고수하지 않는 한 stm32 제품은 훌륭하고 사용하기 쉽습니다). 주변에 물색. TI는 cortex-m4 바구니에 많은 알을 넣습니다. 공급 업체가 지원하는 솔루션뿐만 아니라 이러한 여러 팔 제품에서 mbed 작업을 수행 할 수 있습니다.
항상 의지 할 수있는 것은 라이브러리가 때때로 라이브러리를 변경하고 결국 익숙했던 라이브러리의 지원을 중단한다는 것입니다.