본문 바로가기

연구 노트

(75)
[TM4C] GPIO 초기 설정 방법 해설 들어가며 이 글에서 다룰 예제는 버튼스위치를 이용해서 LED를 켜고 끄는 코드입니다. GPIO 입/출력 관련 설정을 하고 GPIO 데이터 레지스터에 접근하여 값을 읽기도 하고 쓰기도 합니다. 우리는 이 예제를 통해서 레지스터 설정과 접근 방법에 대한 기본을 이해할 수 있을 것입니다. 실습에 필요한 재료는 개발 보드 EK-TM4C123GXL 이고 별다른 추가 회로는 필요하지 않습니다. 이번 글에서는 GPIO 초기 설정 위주로 코드를 해설하고자 합니다. 예제 코드 #include "tm4c123gh6pm.h" #include #define PF4 (*((volatile unsigned long *) 0x40025040)) // SW1 void Switch_Init(void) { volatile unsigne..
CCS 프로젝트 include 경로 설정 #include 코드에 오류 표시가 떠요! 앞서 작성된 글에서 프로그래밍 모델에 따라서 포함시켜야 하는 헤더 파일이 달라질 수 있음을 알 수 있었습니다. 그래서 프로젝트에 맞는 헤더 파일을 추가시키고 빌드를 시켜봤더니 문제가 생기지 않던가요? 코드 편집 창에는 문제가 되는 줄 옆에 x 표시가 생깁니다. 그리고 콘솔창에는 아래와 같은 메시지가 출력되지요. 이 중에서 중요한 정보만 추려서 보겠습니다. "../main.c", line 1: fatal error #1965: cannot open source file "tm4c123gh6pm.h" main.c 파일의 첫 번째 줄에서 #1965 에러가 발생했다고 합니다. #1965 에러가 어떤 의미인지 모르겠지만 계속해서 메시지를 읽어보면 tm4c123gh6pm...
[Modulabs] 2020년 임베디드랩 시즌1 마지막 프로젝트 모두의 연구소 임베디드 랩 2020년 시즌1 모임의 마지막 프로젝트를 위한 요구사항 명세서입니다. 이 프로젝트는 공개강좌인 Embedded Systems - Shape The World의 15장 내용을 참고하여 진행합니다. 충분한 시간을 가지지 않고 진행하는 것이라 부족한 점이 있을 수 있습니다. 그럼에도 도움이 될 수 있는 경우가 있을 수 있기에 내용을 공유합니다. 이 글에서 소개하는 요구사항 명세서 양식은 앞서 알려드린 강좌의 7장 (Design and Development) 내용을 살펴보시면 상세히 알 수 있습니다. 요구사항 명세서 1. 개요 1-1. 목적 임베디드랩 2020년 시즌1을 마감하며 이제까지 배웠던 기술을 하나의 시스템에 통합해본다. 통합되는 기술을 나열하면 아래와 같다. 디지털 입력 ..
[TM4C] TivaWare 프로그래밍 모델 들어가며 주변 장치 드라이버는 두 가지 방식의 프로그래밍 모델을 제공합니다. 한 가지는 레지스터에 직접 접근하는 방식(Direct Register Access Model, DRA)이고 다른 한 가지는 소프트웨어 드라이버 모델입니다. 두 모델은 각각 장단점을 가지고 있으며 개발자는 상황에 맞게 개발 모델을 선택해야 합니다. 레지스터 직접 접근(DRA) 모델 DRA 모델은 제어하고자 하는 주변 장치(Peripherals) 레지스터에 직접 접근하여 개발하는 방식입니다. 레지스터에 접근하기 위해서는 레지스터 주소 값이 정의된 매크로를 이용합니다. 매크로에 정의된 주소 값은 개발하려는 칩마다 다를 수 있어 맞는 헤더 파일을 코드에 포함시킬 필요가 있습니다. 그렇다면 그 헤더 파일은 어디에 있는 걸까요? 헤더 파일..
[TM4C] TI사에서 제공하는 예제 프로젝트 추가하기 개요 Code Composer Studio(이하 CCS)에 있는 Resource explorer는 개발에 필요한 각종 자원을 찾는 데 도움을 줄 수 있는 도구입니다. 여기서 말하는 자원이란 각종 문서나 유틸리티 프로그램은 물론 예제 프로젝트 등을 말합니다. Tiva C 개발을 시작할 때 유용한 정보들을 Resource explorer에서 찾아볼 수 있겠습니다. 이번 글은 많은 자원 중 예제 프로젝트를 여러분의 작업 공간(workspace)에 추가하는 방법을 설명합니다. 예제 프로젝트 추가하기 CCS 상단 메뉴에서 [View]-[Resource Explorer]를 클릭합니다. Resource Explorer 창이 열린 모습을 확인할 수 있습니다. 왼쪽 폴더 모양의 메뉴 중 Software를 클릭합니다. 펼..
[TM4C] Code Composer Studio 프로젝트 만들기 개요 TivaC 환경의 개발을 위해서 Code Composer Studio(이하 CCS) 프로젝트를 만드는 방법을 설명합니다. 프로젝트 만들기 CCS를 실행합니다 상단 도구 아이콘에서 [New]-[CCS Project]를 선택합니다. New CCS Project 창이 열립니다. 이 창에서 살펴봐야 할 항목은 아래와 같습니다. Target Project name Compiler version Projector templates and examples Target 항목에서는 개발 대상이 되는 칩을 선택하도록 합니다. 저의 경우 TM4C123GH6PM을 대상으로 개발을 하고자 하므로 아래와 같이 값을 선택하였습니다. Project name 항목에는 프로젝트 이름을 입력합니다. Compiler version 항..
[TM4C] Texas Instruments의 IDE, Code Composer Studio 설치하기 개요 이 글은 Texas Instruments(이하 TI)의 ARM MCU를 이용한 개발을 하기 위해 통합개발환경(Integrated Development Environment, IDE)을 다운로드하고 설치하는 방법을 설명합니다. TI사의 IDE인 Code Composer Studio(이하 CCS)는 TI사에서 공개한 무료 개발 툴로 누구나 무료로 사용할 수 있습니다. 회사나 자금력이 있는 단체에서는 KEIL이나 IAR의 고가의 유료 IDE를 선호하는 경향이 있습니다. 그러나 그렇지 못한 소규모 단체나 개인이라면 CCS를 이용하는 것이 최선이지 않을까 생각합니다. 또 Linux나 Mac을 사용하고 있다면 더더욱 CCS를 사용할 수밖에 없을 것입니다. 이 설명은 현재(2020년 09월) 기준에 맞추어 작성..
참고 할만한 임베디드 시스템 요구사항 명세서 혼자서 시작해보려는 프로젝트의 요구사항 명세서를 작성을 해보려고 했습니다. 지난 글에서 이야기했던 IEEE의 표준문서(Std. 830)는 군더더기가 많은 느낌을 받았습니다. 좋게 말하자면 세세한 사항을 적게 되어 있어서 구체적입니다. 하지만 혼자나 적은 인원수로 빠르게 개발하고자 할 때 사용하기에는 이 문서를 작성하다 배보다 배꼽이 커지는 상황이 올 것 같아 고민이 많았습니다. 예를 들어 혼자 개발하고자 할 때 1.3항의 Roles and Responsibilities는 그다지 필요하지 않은 내용입니다. 모든 일을 혼자 하게 될 테니까요. 그러나 오해하면 안 되는 것이 저의 상황에 IEEE의 문서가 맞지 않다는 것이지 그 문서가 잘못되었다는 것은 아닙니다. 참여하는 사람이 많고 규모가 어느 정도 되는 프..