NXP Cortex M3 아키텍처로 마이그레이션 할 계획이며 기존 개발 도구간에 약간의 손실이 있습니다.
Keil은 비싸고 그만한 가치가 있는지 모르겠습니다. 컴파일러를 사용해 본 사람이 있다면 조언을 해줄 수 있습니까?
나는이 컴파일러 http://www.code-red-tech.com/red-suite-2.php를 발견했습니다 . 그것을 시도하거나 그것에 대해 알고있는 사람이 더 많은 정보를 줄 수 있습니까?
NXP Cortex M3 아키텍처로 마이그레이션 할 계획이며 기존 개발 도구간에 약간의 손실이 있습니다.
Keil은 비싸고 그만한 가치가 있는지 모르겠습니다. 컴파일러를 사용해 본 사람이 있다면 조언을 해줄 수 있습니까?
나는이 컴파일러 http://www.code-red-tech.com/red-suite-2.php를 발견했습니다 . 그것을 시도하거나 그것에 대해 알고있는 사람이 더 많은 정보를 줄 수 있습니까?
답변:
나는 최근 여가 시간에 STM32 (또한 Cortex M3)를 가지고 놀았으며 GCC의 CodeSourcery 배포판을 사용하여 잘 작동했습니다.
과거에 ARM 마이크로와 전문적으로 작업 한 동료는 비용이 어떤지 또는 Cortex 지원이 어떤지 모르겠지만 IAR 툴체인에 만족한다고 말했습니다.
Linux 용 CodeSourcery (Lite) 크로스 컴파일러를 사용하여 TI Stellaris Microcontrollers 를 프로그래밍합니다 . 그들은 모든 Cortex-M3과 함께 작동합니다. Windows 및 Linux 용 바이너리가있는 완전 무료입니다.
설치하는 간단한 레시피 (Debian / Ubuntu)는 다음과 같습니다.
툴체인 다운로드 (모든 버전에서 사용되지만이 버전을 사용함)
JRE (Java Runtime Environment) 설치
sudo apt-get install sun-java6-jre ia32-libs
설치
chmod 755 arm-2009q3-68-arm-none-eabi.bin
./arm-2009q3-68-arm-none-eabi.bin -i console
PATH에 크로스 컴파일러 bin 디렉토리 추가
echo 'export PATH=$PATH:~/CodeSourcery/Sourcery_G++_Lite/bin/' >> ~/.bashrc
. ~/.bashrc
코드를로드하고 디버그하려면 OpenOCD 와 gdb 또는 GUI 중 하나가 필요합니다.
JTAG 어댑터 도 필요합니다 .
이 중 하나를 사용하기 시작했습니다 (MBED 개발자 보드). 저에게 가장 큰 장점은 C 또는 C ++로 코드를 작성할 수 있고 USB를 통한 간단한 연결과 매끄러운 온라인 개발 환경 (로컬 툴 설치가 전혀 필요하지 않음)이었습니다.
오프닝 박스 5 분 후 나는 다음과 같은 샘플 깜빡이는 프로그램 (내장 세계의 'hello world')을 가지고 있었다.
#include "mbed.h"
DigitalOut myled(LED1);
int main()
{
while(1)
{
myled = 1;
wait(0.2);
myled = 0;
wait(0.2);
}
}
그게 다야! 위의 완전한 프로그램입니다!
ARM Cortex M3, 임베디드 프로젝트 (100mhz, 256k 플래시 및 32k 램)를위한 빠르고 많은 메모리를 기반으로합니다. 온라인 개발 도구에는 매우 훌륭한 라이브러리와 많은 예제가 있으며 매우 활발한 포럼이 있습니다. MBED 등에 장치를 연결하는 데 많은 도움
임베디드 시스템 (ARM 7/9, Renases M8 / 16 / 32, Coldfire, Zilog, PIC 등)에 대한 많은 경험이 있지만 여전히 심각한 기능을 수행하면서 쉽게 잡을 수있는 상쾌한 시스템을 발견했습니다.
기본 브레드 보드에서 처음 플레이 한 후 다음 사람들로부터베이스 보드를 구입했습니다 .. 여기에는 I / O 장치 더미 (미니어처 OLED 및 3 축 가속도계 포함)가 있습니다. 같은 사이트에서 MBED보다 저렴하고 전력 / 메모리는 적지 만 소규모 작업에 적합한 LCPExpresso 프로세서 보드 중 하나를 구입했습니다 (여전히 PIC / Atmega 프로세서의 허물어 짐). 베이스 보드는 LCPExpresso와 MBED를 모두 지원합니다. LCPExpress 프로세서 보드를 구입하면 JTAG 디버거와 오프라인 개발 환경 (Code Red의 GCC / Eclipse 기반 개발 키트)도 제공됩니다. 이것은 온라인 MBED 개발 환경보다 훨씬 복잡하지만 MBED에 익숙해지면 논리적으로 진행됩니다.
MBED 컨트롤러가 LPCExpresso 컨트롤러보다 훨씬 더 유능하다는 사실을 필자의 원래 요점을 참조하면 BUT는 사용 및 학습이 훨씬 간단합니다.
코드 소스 라이트가 좋거나 emdebian을 사용하십시오. 전체 C 또는 gcc 라이브러리가 필요하지 않으면 여전히 쉽지만 조금 더 어렵습니다. 처음에는 thumb2 가능 컴파일러가 필요하지 않습니다. 원하는 툴체인을 검색 할 때 thumb이 필요합니다.
llvm은 또 다른 좋은 것입니다 (llvm-gcc가 아닌 clang 사용 !!), 팔 쪽이 항상 좋아지고 있음을 알고 있습니다. 버전 27은 특정 테스트를 위해 현재 gcc보다 빠른 코드를 생성했습니다. 엄지 손가락 에뮬레이터 (thumbulator.blogspot.com)에서 작업 할 때 엄지 손가락에 버그가 발견되었습니다. llvm의 가장 좋은 점은 기본적으로 크로스 컴파일러이며 추가 작업이나 건물 경험이 필요하지 않다는 것입니다. 앞으로 몇 년 동안 나는 그들이 교차 컴파일 / 임베디드하여 gcc를 더 깊이 파고 들고 gcc를 전달하는 것을 볼 수 있습니다.
나는 lpcxpresso 보드로 한 번 코드 레드 도구를 사용해 보았습니다. 결국 결과는 절대 코드 레드를 절대 사용하지 않으며 lpc를 블랙리스트에 올릴 것인지에 대한 토론입니다. ymmv. 도구 비용을 지불 해야하는 경우 팔로 구입하고 패키지의 일부가 rvct 컴파일러이기 때문에 keil과 함께 갈 것입니다. 물론 코드 소스는 라이트 제한을 충족하지 않거나 지원을 선택하면 gcc이므로 모든 컴파일러 중 최고의 지원을받습니다. 얼마 전부터 메타웨어와 팔 도구를 사용하여 코드 품질까지 gcc를 날려 버렸습니다. gcc는 3.x의 일부 버전이 4.x보다 더 나은 코드를 생성합니다. 각 릴리스에서 개선되는 것으로 보이지는 않지만, 얼마 전에 코드 소스에 thumb2 지원이 추가되었거나 코드를 추가하지 않았을 수도 있습니다. / 없어요.
If you have to use a pay for tool I would go with keil only because they were bought by arm
-Keil 컴파일러를 사용해 보셨습니까? 나는 Keil 8051 도구에 적어도 감동하지 않았습니다. 그들은 GCC 기반 경쟁이나 LLVM / Clang 제품군 인 IMHO에 비해 공룡처럼 느껴집니다.
Yagarto + Eclipse + J-link edu 디버거를 사용합니다. (Gnu 툴체인)
지난 며칠 동안 OS X에서 EFM32G 마이크로에 대한 CodeSourcery GNU 툴체인을 완전히 설정하는 데 보냈습니다. 그만한 가치가있었습니다. 내가 시도한 많은 GUI 기반 디버거와 비교할 때 (주로 Eclipse 기반); Makefiles, GCC 및 GDB는 꿈이 실현됩니다. 또한 모두 내 Linux 또는 Mac 터미널에서 작동합니다.
짜증나는 유일한 부분은 보드에 내장 된 J-Link 어댑터입니다. J-Link의 Windows 및 Linux GDBServer 프로그램은 비공개 소스입니다. 더 나쁜 것은 Linux 버전이 훨씬 뒤떨어져 있다는 것입니다. 따라서 GDB가 작동하려면 GDBServer를 실행하는 것이 유일한 목적인 Windows VMWare 이미지를 실행해야합니다 (Linux가 손상 되었기 때문에).
J-Link의 Linux 기반 GDB 서버는 127.0.0.1에 바인딩하고 dest로 패킷을 수신합니다. 따라서 원격 컴퓨터에서 연결하려면 iptables를 엉망으로 만들고 전달해야합니다. 어리석은; Segger는 함께 행동해야합니다.
QtCreator 및 GNU Tools ARM Embedded를 사용합니다. 잘 작동합니다.
장점 :
단점 :
모든 것이 올바르게 설정되면 클릭하여 코드에 중단 점을 만든 다음 "디버그"버튼을 클릭 할 수 있습니다. 약 5 초 후에 중단 점에서 컴파일, 플래시, 실행 및 일시 중지됩니다 (그리고 Arduino "IDE"로 돌아 가야하는 경우 동시에 분노하게됩니다).
다른 ARM 칩으로 Cortex-M0 기반 nRF51822로 설정하는 방법에 대한 자습서를 작성 중입니다.
CooCox 도구를 사용하는데, 코드 크기에 제한이 없지만 훌륭하지만 무료입니다. http://www.coocox.org/
arm-eabi-gcc 및 소환 팔 툴체인 스크립트 를 통해 설치된 툴체인을 사용 합니다. 이 스크립트는 ARM에서 베어 메탈 작업을 수행하기위한 환경을 설정합니다. 그것의 무료 및 오픈 소스와 그 모든 것이 안정적으로 요구됩니다. 나는 또한 이것을 위해 IAR을 사용했으며, 훨씬 더 친절한 디버깅과 IDE 방식으로 일을 수행 할 수 있다는 점에서 더 낫습니다. 그러나 다른 이유로 아무런 이유가 없다면 gcc에 더 편안합니다. 누구에게나 비용을 정당화 할 필요는 없습니다.
(나는 gdb를 사용하는 방법을 실제로 연구 한 적이 없지만 디버거를 사용하거나 어쨌든 사용할 수있는 것에 익숙하지 않았으므로 그 비트를 판단 할 자격이 있는지 확실하지 않습니다.)
Emprog ThunderBench 사용 합니다. 아마도 내가 사용한 것 중 최고 일 것입니다.
내가 가장 좋아하는 것은 동시에 C / C ++ ARM cortex 컴파일러 , 디버거 및 IDE라는 것입니다.