본문 바로가기

자동차 임베디드 SW118

가상 주소공간(virtual address space) 32bit 아키텍쳐의 컴퓨터에서 하나의 Sw는 각각 4Gbyte의 메모리 공간을 할당 받는다. (왜냐면 2^32 가 4Gbyte 이기 때문) 이 4GByte의 메모리 공간을 가상주소공간이라고 부르는데, 그 이유는 이것은 각각의 sw마다 독립적으로 갖고 있는 주소공간이기 때문이다. 또한, 해당 프로그램이 실제로 메모리에 올라가서(로드되서) 실행될 때, sw 코드상에 정의된 메모리주소와 실제 메모리 물리주소가 다르기 때문에 이것을 가상주소공간이라고 부른다. (참고로 윈도,리눅스 등 로더를 사용한 멀티프로세싱이 가능한 운영체제를 갖지 않는, 오직 하나의 exe 파일만이 실행되는 임베디드 sw코드의 경우. 코드에 정의된 메모리주소와 실제 메모리 주소 영역이 완전히 동일하게 된다.) 예를 들어 test1.exe .. 2021. 11. 14.
dll (다이나믹 링킹 라이브러리) 개념 앞에서 빌드의 개념을 설명할 때. 라이브러리 파일도 링킹 단계에서 함께 링크되어야한다고 했다. 근데 다이나믹 링킹이 뭐냐면 exe 파일을 만드는 단계에서 라이브러리 파일을 링크하는게 아니라 exe 파일이 실행되서 해당 라이브러리를 런타임에 실제로 '호출'할 때 가져다 쓰겠다는 소리이다. 무슨말이냐면 test1.c - > test1.exe test2.c -> test2.exe 두개의 서로 다른 exe 파일을 만드는 상황. 이때 두개의 파일은 모두 printf 라는 라이브러리를 사용한다. printf를 사용하기 위해서는 링크단계에서 해당 라이브러리가 함께 링크되야한다. 그래서 test1.exe와 test2.exe는 내부에 각각 printf 라이브러리를 갖게 된다. 이때 한 컴퓨터에서 test1.exe와 te.. 2021. 11. 14.
컴퓨터 프로그램의 개념(컴파일.링크.빌드) 이해 컴파일.링크.빌드의 개념 로더의 개념. Cache와 TLB의 개념 등등은 kocw 사이트에 있는 고려대학교 최린 교수님의 2019년 컴퓨터구조 강의를 공부한 내용을 정리하였다. 아래는 강의 링크 및 목차 http://www.kocw.or.kr/home/cview.do?cid=26adea597863b523 컴퓨터구조 컴퓨터의 구성 요소인 프로세서와 메모리, 입출력 장치의 동작원리와 내부 구조에 대하여 학습한다. www.kocw.net 시간 있으면 해당 강의보면 어려운 내용 없이 이해가 잘 된다. 근데 일일이 다시 보기 귀찮으니까 대강의 개념만 블로그에 정리하려함. sw는 컴퓨터가 수행할 수 있는 명령어들을 나열해놓은 것이다. 컴퓨터는 cpu를 갖고있는데 cpu는 저마다 고유의 instruction set을.. 2021. 11. 14.
Trace32 cmm 개요 및 유용한 명령어들 창 별도로 만들어서 밖으로 빼기 제일 앞에 we. 를 적는다 wactch창에 구조체 등록시 멤버변수 펼쳐보기 v.w.%open.1 test1 open 뒤에 숫자는 몇 단계까지 펼칠건지 나타냄. ▶ File 메뉴에서 run script를 고른후 cmm 파일을 선택하면, gui 창에 해당 스크립트가 나타나지는 않고 그냥 해당 스크립트 안에 있는 내용을 그대로 실행시켜버린다. 이것을 커맨드 명령으로 치면 do "cmm파일명" ▶ File 메뉴에서 edit script를 고른 후 cmm 파일을 선택하면, gui 창에 해당 스크립트 파일을 볼 수 있게 열린다 커맨드로 하면 pedit "cmm파일명" ▶ cmm 파일에서 제일 앞에 ; 를 쓰면 주석을 의미한다. ▶. 변수명 확인할 수 있게 watch 창에 등록하기 .. 2021. 11. 12.
CAN 통신 개요. 캔 통신이란? can통신 기초 Can통신이란 무엇인가? 세상에는 다양한 통신 프로토콜들이 존재하는데 컴퓨터에 랜선을 연결해서 인터넷을 사용할 때 쓰는 TCP/IP 통신, WiFi 통신이 대표적인 예시이다. CAN도 수 많은 통신 프로토콜 중 하나이다. 통신이라는 것은 서로 다른 두 주체가 데이터를 주고 받는 것을 의미한다. 자동차 안에는 굉장히 많은 제어기가 들어가 있다. 여기서 제어기는 일종의 컴퓨터라고 생각하면 된다. 핸들(조향장치)를 컨트롤 하는 제어기, 브레이크를 컨트롤 하는 제어기, 에어백을 컨트롤 하는 제어기, 스마트키 모듈을 컨트롤하는 제어기 등등.. 아주 많은 수의 제어기가 자동차 안에 들어가있다. 그리고 이러한 제어기들은 서로 정보를 주고 받을 필요가 있는데, 이 때 사용하는 통신 프로토콜이 바로 CA.. 2021. 4. 15.
배치파일 관련 https://www.snoopybox.co.kr/m/1404 배치파일 기초 작성법 예전부터 한번 정리하려고 했는데 시간이 많이 걸리는 일이라 차일피일 미루다 오늘에야 올려봅니다. 처음에는 간단히 작성하려고 했는데 쓰다보니 글이 꽤 길어지더군요. 관심있는 분들만 www.snoopybox.co.kr 참고 2021. 3. 12.
VSCODE 유용한것 메모 https://hjcode.tistory.com/m/14 vscode 유용한 기능 Vscode의 유용한 기능들 셀렉션 위/아래로 이동 alt + 방향키 위/아래 셀렉션 복사 alt + shift + 방향키 위/아래 멀티 커서 에디팅 (Multi Cursor Editing) ctrl + alt + 방향키 위/아래 떨어져 있는 단어들을.. hjcode.tistory.com 파일 안에서 특정 줄로 이동 : CTRL + G (커맨드이름 Go to Line/Column) ctrl + alt + 방향키 : 멀티 커서 생성 (참고로 해당 기능 정확한 이름은 Add Cursor Above Add Cursor Below 이다.) alt + 클릭 : 멀티 커서 생성 ctrl + d : 내가 특정 단어나 문장을 선택했을 때.. 2021. 2. 19.
A-Spice 의 개요 자동차 임베디드 SW 개발에서 A-Spice라는 것이 있다. A-Spice의 모든것에 대해 아주 완벽하고 정확하게 알아가기보다, 대강 어떤 느낌인지 파악하는 글을 써보겠다. A-SPICE는 Automovie Software Process Improvement and Capability dEtermination 의 약자인데. 간략히 말하면 '차량SW 개발 프로세스 가이드라인' 정도로 말 할 수 있을것 같다. 핵심단어는 '프로세스' 이다. 사실 SW라고 하는것은 누가 '어떻게' 만들었는지와 상관없이 원하는 기능만 잘 구현되면 장땡이다. 예를들어 똑같은 기능을 하는 sw인데 누구는 함수 5개로 나눠서 짜고, 누구는 함수 1개에 전부 다넣어서 짤 수도 있다. 또한 누구는 전역변수를 왕창 사용해서 코딩을 하고, .. 2020. 4. 19.
정적검증과 미즈라씨 Misra-C 정적검증은 소스 코드 그 자체를 툴이 검사해서 혹시 문제를 일으킬 소지가 있는 것을 알려주는 작업이라 하였다. 정적검증을 이야기하면서 항상 나오는 것이 바로 Misra-C (미즈라씨) 이다. 정적검증툴이 소스코드를 검사할 때, 문제가 있는지 없는지를 판단하는 기준이 있어야 될 것이다. 그런 기준은 툴마다 조금씩 다르고 아주 다양한 기준이 있다. 그런 기준들중에서 국제적으로 표준처럼 쓰이는 Rule이 바로 Misra-C 이다. 미즈라씨가 제공하는 Rule 이 실제로 무엇인지 정리된 문서는 돈주고 사서 봐야한다. 정적검증 오류로 예를 들었던 초기값이 없는 지역변수 선언 이라던지.. 포인터를 잘못사용했다던지.. 그런 에러를 유발할 수 있을 법한 상황들을 100~170개 정도 나열 해놓은것이 미즈라 씨이다. 참.. 2019. 7. 6.