본문 바로가기

분류 전체보기356

정적검증과 미즈라씨 Misra-C 정적검증은 소스 코드 그 자체를 툴이 검사해서 혹시 문제를 일으킬 소지가 있는 것을 알려주는 작업이라 하였다. 정적검증을 이야기하면서 항상 나오는 것이 바로 Misra-C (미즈라씨) 이다. 정적검증툴이 소스코드를 검사할 때, 문제가 있는지 없는지를 판단하는 기준이 있어야 될 것이다. 그런 기준은 툴마다 조금씩 다르고 아주 다양한 기준이 있다. 그런 기준들중에서 국제적으로 표준처럼 쓰이는 Rule이 바로 Misra-C 이다. 미즈라씨가 제공하는 Rule 이 실제로 무엇인지 정리된 문서는 돈주고 사서 봐야한다. 정적검증 오류로 예를 들었던 초기값이 없는 지역변수 선언 이라던지.. 포인터를 잘못사용했다던지.. 그런 에러를 유발할 수 있을 법한 상황들을 100~170개 정도 나열 해놓은것이 미즈라 씨이다. 참.. 2019. 7. 6.
정적검증 ( 학교에서 하던 sw랑 회사에서 쓰는 sw는 뭐가 다를까?) 나는 오래전부터 궁금했다. 학교에서 과제로 하는 SW(코딩)과 회사에서 쓰는 코딩은 어떤 차이가 있을까? 일단 회사에서 만드는 SW는 돈 받고 파는 제품이니까 안전한 SW를 만들어야 될 거 같은데..특히 자동차는 사람 생명과 연관되어있으니 더욱 더 안전하게 만들어야 할 것 같은데 SW를 안전하게 만든다는게 어떤 개념인지 전혀 감이 안 왔다. 아직도 모르는 것 투성이지만.. 일단 회사에서 만드는 SW는 학교에서 과제로 하던 SW와 다른점이.. 평가/검증 조직이 따로 있다는 점. 그리고 평가/검증을 받는다는 점이다. 다양한 평가/검증 방법, 프로세스, 툴, 기법이 있다. 컴퓨터공학과를 전공했지만 ‘SW 테스팅’ 이라는 개념 자체를 아예 몰랐다. (지금도 사실 잘 모른다.) 심지어 국제 SW 테스팅 자격증. .. 2019. 7. 5.
컴퓨터 SW . 그리고 2진수에 대하여 컴퓨터에 대해서 이야기 하려면 2진수 이야기를 안 할 수가 없다. 임베디드가 아니라 일반 컴퓨터 SW를 하더라도 우리는 2진수를 무조건 알아야 한다. 유명한 사실이지만 컴퓨터는 모든 정보, 숫자를 0과 1로 표현하고 구분한다. 1은 전기스위치가 ON 된 것, 0은 전기 스위치가 Off 된 것이다. 그렇다면 2진수는 대체 어떻게 사용하는 것일까? 일반적으로 우리가 사용하는 10진수에 대해서 알아보자. 예를 들어 10진수 3254가 있다고 생각해보자. 10³ = 1000 10²=100 10¹ = 10 1 3 2 5 4 10진수 3254의 (3은 10의 3제곱 = 1000) 에 3을 곱해서 3000 (2는 10의 2제곱 = 100 ) 에 2를 곱해서 200 ( 5는 10의 1제곱 = 10 ) 에 5를 곱해서 .. 2019. 7. 4.
임베디드가 뭘까? MCU가 뭘까 ?? 임베디드 임베디드 단어는 아주 옛날부터 많이 들어봤었다. 그런데 정확한 정의를 모르겠다. 임베디드가 뭘까? 임베디드 SW는 컴퓨터(PC) SW랑 뭐가 다른걸까?? 일단 이해를 돕기 위해 가장 간단히 설명하면 임베디드 = 컴퓨터다. 편의상 구분짓기 위해서 임베디드 라고 칭하는 거지 임베디드도 사실 그냥 컴퓨터다. 근데 키보드,마우스,모니터가 없는 컴퓨터다. ( 대신 간단한 버튼 몇개와 LCD화면, LED 램프 등이 달려있다.) 임베디드SW랑 컴퓨터SW는 뭐가 다를까? 본질적으로 똑같다. 임베디드 개발자가 개발하는 SW가 사실은 PC에도 이미 깔려서 돌아가고 있다. (윈도우와 같은 OS, 그리고 각종 HW 드라이버들 ) 윈도우 OS는 컴퓨터를 사면 자동으로 깔려있고.. 키보드도 마우스도 컴퓨터를 켜면 알아서.. 2019. 7. 3.
공부한 내용 정리해두는 낙서장 공부를 열심히 해놓아도 시간이 조금만 지나도 금방 까먹다는걸 요즘 많이 느낀다. 그래서 배운것들을 주절주절 적어두기 위해서 블로그를 만들었다. 아주 정확한 내용이 아니라 아~대충 그런식으로 굴러가는거구나 . 하고 흐름을 이해할 수 있도록 글을 쓸 생각이다. 내가 임베디드 개발을 직업으로 삼게 될 줄은 회사에 입사하는 날까지도 몰랐다. 대학생들 요즘에는 심지어 초등학생들도 배운다는 아두이노 조차 써본적이 없고, 빵판에 LED 달아서 켜고 끄는것 조차 해본적이 없었다. 아두이노는 물론 Atmega128, 라즈베리파이 등등 대학생들도 많이 쓰는 MCU 이름도 들어본적이 없었고 당연히 써 본적도 없었다. 임베디드는 내 인생과 전혀 연관이 없는 분야였다. 그러다가 회사에 취업해서 어쩌다보니 각종 액츄에이터를 제어.. 2019. 7. 3.