"ls", "rm" 과 같은 리눅스/유닉스에서 많이 쓰이는 실행 명령어를 사용할 수 있게 CoreUtils for Windows 을 방문하여 설치하도록 하자.
Windows 환경에서 Makefile 을 할 수 있도록 GNU Make for Windows 를 설치한다. (물론, 다양한 툴이 설치될 때 여러 버전의 Make 유틸이 설치되기는 한다. 의도하지 않아도, 특히 컴파일러들을 설치하면 각자의 Make 툴이 있다. 이때는 버전이나 실행파일 위치를 조심해야 한다.) 우리는 무료로 쓰는 툴을 깔아야 하니 "GNU"에 감사하면서, http://gnuwin32.sourceforge.net/packages/make.htm 여기를 방문하도록 한다. 소스까지는 보통 필요없으니, 다운로드에서 "Complete package, except sources" 이부분의 링크를 클릭하여 다운을 받는다. 여기도 링크(Setup) 복사해 둠. 누르면 Sourceforge 사이트로 이동..
반드시 해 줘야 한다. mbed가 기본적으로 USB2Serial을 제공하고 있으나, 이 드라이버를 반드시 꼭 설치 해 줘야 한다. 최소한 나의 경우에는 자동으로 설치되지 않았다. ㅠㅠ 그러나, 여기에 짜짠하고 설치파일이 준비되어 있다. https://mbed.org/handbook/Windows-serial-configuration 아래 그림처럼 창이 뜨고, 별표있는 곳을 클릭하면 다운로드~~~~~, 첨부파일까지 가져다 놓자. 이게 머라고, 그냥 실행시키면 된다. 보드를 켜두고, USB 연결해 놓고 설치한다. 이놈이 설치하다가 보드를 찾는다. mbedWinSerial_16466.exe 이제 아래 코드로 Serial 출력이 가능하게 된다. 설명은 여기 https://mbed.org/handbook/Seri..
생각보단 쉽다. 자신이 만든 라이브러리 라면 더 쉽겠지만,다른 사람이 만든 라이브러리의 버그를 과감히 수정해 보는 경험을 해보자. (물론 라이브러리 관리자에게 허가를 받아야 하지만)일단, 간단하게 해본 경험을 적어보았다.아래 http://medium.com 을 통해 적은 글을 클릭해서 보자. 그대로 긁어 오려니, CSS가 너무 안맞네. 수정하기는 귀찮고 링크로 대신한다. from : https://medium.com/@bjnhur/be-a-contributor-of-mbed-library-82a1b75fc754Ethernet Library for W5500 ( WIZnet ) 예제로 모두에게 오픈되어 있는 #mbed에 흔적을 남겨보자. 누군가에게 도움이 되지 않아도..되길 바라지만 Be a Contrib..
여기저기 클라우드 서비스가 생겨나고 있다.Internet of Things device 를 위한 서비스들도 많이 나오고 있네.대표적인 것은 물론, http://xively.com
먼저, IDE를 쓰기 위한 기본 툴들은 다 설치했다. 아래 링크를 참고하고, Install ARM GCC (컴파일러 설치) the GNU MAKE Utility 설치하기 GNU Utilities package for Windows 설치 이제 도스창에서 벗어나, 화려한 그래픽의 세계로 이 컴파일러를 쓸 수 있도록 설정해 보자.대부분, Eclipse+CDT 의 조합으로 사용하는 것이 대부분이다.Getting Started with the ARM GCC Compiler on Windows for the STM32F4DISCOVERY Board링크 글을 참고해서 설치를 하는 게 좋다. 아니면, Free/Open ARM Cortex MCU Development Tools 인 CooCox 를 설치해 보는 것도 나쁘..
일단, 무료로 써야 하니 무료 컴파일러를 설치해 보자.핵심을 설치하고 나서, GUI, IDE 환경을 깔아야 할 터. 일단, https://launchpad.net/gcc-arm-embedded 를 방문한다.깔끔한 GNU Tools for ARM Embedded Processors 에 대한 설명 페이지와 다운로드 할 수 있는 링크들이 나와 있다.여기서 최신판으로 다운로드 한 다음, 설치에 들어간다.다운로드만을 원하면, 여기로 https://launchpad.net/gcc-arm-embedded/+download 가서 클릭클릭. 설치 파일을 실행한다. 당연히, 동의해 주시고~~ 그냥, 기본폴더로 복사해 주는 귀차니즘. "환경변수 등록을 해 주세요." 한다. 아니면 나중에 막 수동으로 해 줘야 하는 귀찮음이...
ARM 에서 밀고 있는 무료 온라인 컴파일 환경사이트 주소는 http://mbed.org 이다.요즘 플랫폼도 많고, 사용자도 많아진 듯. NXP, ST, Freescale 어떤 칩을 쓰던 쉽게 컴파일하고 테스트할 수 있는 환경이다.난 간단한 "Hello World" 수준의 프로그램밖엔 못해봤지만.많이 자동화 되어 있고, 라이브러리도 많이 있다. 한글자료로 찾아보니 거의 하나밖에는 없네..그래도 복사해서 소개 출처 : http://wiki.vctec.co.kr/devboard/mbed 하위 페이지 나열[ARM mbed 강좌] 01. mbed 소개[ARM mbed 강좌] 02. mbed 구입, 유저등록, 기본테스트[ARM mbed 강좌] 03. mbed 소스작성, 컴파일, 업로드[ARM mbed 강좌] 04..
그냥 발표자료이다. 쭉 처음부터 읽어보면 된다.Keil uvision으로 간단히 프로그램 만들고, 디버깅하는 것들, 유용한 기능들에 대한 설명이 쭉 되어 있다. 출처 : Keil Overview - MIT 비슷한 자료지만, 기왕 찾은 것 하나더 첨부"Development Tools for ARM-Powered Devices" - MDK-ARM, 디버그 종류에 따른 기능도 간단히 비교해주고 EVB 그림도 하나 나오고 ^^, 단 2009년 자료라는 것.. 출처 : http://www.emcu.it/KEIL/mdk_4.00_full.pdf ㅋㅋ 짤은 십여년전에 배운 컴파일러책~~~ Compilers by mrjoro
프로그램을 작성하다 보면, 하나의 프로젝트지만 (즉, 거의 비슷한 소스를 사용하는데,) 특정부분때문에 여러 프로젝트로 나누어야 하는 경우가 생긴다. 예를 들면, 공통 라이브러리를 사용하는데 MCU가 달라서 다른 Startup code를 써야 한다면제일 쉽게는 각각 별도의 프로젝트로 만들고 코딩을 하면 된다. 그래도 일목요연하게 하나의 그룹처럼 보이게 하려면..Keil을 쓰는 경우라면, UV4, UV5등을 사용하는 경우라면 "Targets" 이라는 용어를 사용하고 있더라~ Keil의 help 사이트에서 예를 가져와 보자. 출처 : http://www.keil.com/uvision/ide_prj_targets.asp 그림으로 가져왔다.위의 그림의 왼쪽과 오른쪽 처럼 Target MCU가 다른 경우로 나누어서..
개발환경을 돈으로 사면 제일 편함~~그렇지 않다면.. 원본 : http://embdev.net/topic/129986GCC-based IDEs: 무료 IDE 환경, Eclipse 기반이겠지CooCox IDEEm::BlocksFree GCC toolchain packages:GCC-ARM-Embedded – supported by ARMSourcery Codebench LiteDevKitProOther tools:OpenOCD – Open Source JTAG tool for ARM(...) Operating Systems:FreeRTOS – many example projects for various ARM boards provided머든 눈으로 봐서는 한계가..직접 쿠쿠쿠쿠쿠=)
ARM SoC 개발 중 버스나 Decoder에 보면 default slave 가 있다. 머냐..메모리 맵상에 할당되지 않은 주소(빈공간)를 접근하는 경우 활성화 되는 모듈이다.이름 그대로 디폴트..역할은 단순하다. HREADYOUT은 물론 잘 띄워줘야 하고, 읽기든 쓰기든 끝이 나게 하려면 꼭 띄워줘야하고또 하나, HRESP에 에러를 띄워주는 것. 왜냐면 여기는 빈공간이니까~~ http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka3445.htmlGeneral: What is a default slave?Applies to: AHBAnswerIf the memory map of a system does not define the full ..
AMBA bus를 사용하는 경우, 바이트별 접근을 위해 판단하는 시그널 생성 코드 (참고용, 책임 못짐 ^^) // Generate byte access from AHB busassign byte0_access = (HSIZE[1] | ((HADDR[1]==1'b0) & HSIZE[0]) | (HADDR[1:0]==2'b00));assign byte1_access = (HSIZE[1] | ((HADDR[1]==1'b0) & HSIZE[0]) | (HADDR[1:0]==2'b01));assign byte2_access = (HSIZE[1] | ((HADDR[1]==1'b1) & HSIZE[0]) | (HADDR[1:0]==2'b10));assign byte3_access = (HSIZE[1] | ((HAD..
Microsemi Application note 에 있는 그림을 잘라 가져온다. 약간 헷갈릴 수 있는데, 그림으로 잘 그려두었다.기본이 4바이트(워드라고 부른다)로 동작을 하니 바이트 동작을 하는 경우 alignment가 신경 쓰인다. 그냥 콱 4바이트 전용으로 동작하면 좋으련만 녹록치 않다 세상은. ^^그림을 보면 이해가 쏙, HADDR의 하위 2비트를 옵셋으로 사용하고, HSIZE가 동작 단위이다.당연히 HSIZE="00" 인 경우 바이트 동작이므로 4가지의 경우가 생기고HSIZE="01" 인 경우 2바이트 단위이므로 2가지의 경우가 생긴다. (상상일 수 있지만, HADDR[1:0] = "00" 이나 "01" 이라도 같은 동작일 듯 하다. 상위비트로 구분할 듯)그리고, HSIZE = "10" 인 경우..