펌웨어 RTOS 책을 썼습니다.

나빌레라의 이미지

10년만에 책을 한 권 썼습니다.

10년전에 KLDP에 쓴 글을 바탕으로 책을 냈었습니다.

이 책이죠. 아직도 절판되지 않고 팔리고 있습니다. 10년동안 꾸준히 일정 권수만큼 매년 팔리는 것 보면 아마도 어딘가에서 교재로 쓰고 있지 않나 하는 합리적 의심을 하고 있습니다.

그러는 동안 꾸역꾸역 시간은 흘렀습니다. 저도 어느덧 10년 넘는 경력의 개발자가 되었고 책도 나온지 10년이나 된 오래된 책이 되어 버렸습니다. 물론 10년이 지나서 봐도 여전히 훌륭한 책입니다. 그래도 10년이나 지났으니 새 책을 써야 겠다는 생각이 들었습니다. 10년간 바뀐 개발 환경 그리고 제가 10년간 현업에서 얻은 경험을 살짝 녹여서 책을 썼습니다.

이 책입니다.

다 쓰고 보니 오히려 내용의 난이도는 전작보다 쉬워졌습니다. 역시 경력이 쌓이니 같은 내용도 더 쉽게 설명하는 방법을 터득했나봅니다. 그리고 전작에서 실물 하드웨어 개발보드를 타겟보드로 삼아 내용을 진행했던 것과 달리 이번책에서는 전부다 QEMU에서 작업합니다. (QEMU도 10년동안 프로젝트가 안망하고 계속 발전했더군요. 이제는 완전히 메이저 오픈소스 프로젝트중 하나가 된듯 합니다.) 그래서 책만 사서 열심히 따라하면 책의 내용을 모두 실습해 볼 수 있습니다. 맞습니다. 돈을 아낄 수 있습니다.

이 책도 앞으로 한 10년간 절판없이 생존하길 바라며..
그 10년후에 저도 계속 이 바닥에서 생존하길 바라며..

많이 사 주세요~

File attachments: 
첨부파일 크기
Image icon EmbeddedOSProjectBook.jpeg107.61 KB
Image icon L.jpg92.29 KB

댓글

세벌의 이미지

reistrem의 이미지

주문했는데요.
오늘 오겠네요!!!
야호!!!

나빌레라의 이미지

참! 이 게시물 댓글로 책 내용에 대한 질문을 직접 받고 답변 드립니다.
지난 책 냈을 때 보니 책 출간하고도 한 3년 정도까지 출판사 통해서 질문이 들어오더라구요.

<임베디드 OS 개발 프로젝트>를 읽으면서 궁금한점이 있으면 여기에 댓글 달아 주세요.

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

김진희(IDT)의 이미지

책을 구입을 하여 차근 차근 따려 하려고 합니다.(리눅스 계열은 처음입니다.)
리눅스 설치는 워낙에 많은 자료가 있어 문제 없이 진행이 되었습니다.

리눅스 계념이 예전에 DOS 처럼 터미널을 이용한 프로그램 인거 같습니다.

아직 생소한 명령어에 이해가 가지 않지만 그럭저럭 찾아보면서 하고 있습니다.

현재 3.3 QEMU에서 실행을 하고 있습니다. 우분투버전(18.04.3) 입니다.
arm-none-eabi-gdb 를 하려는대 에러가 납니다. 책에도 같은 내용입니다.

그래서 sudo apt install gdb-arm-none-eabi 를 터미널에 입력하면
패키지를 찾을수 없다고 합니다.

우분투 버젼이 높아서 그렇다고 하던데 그렇다고 우분투 버전을
내려서 할수도 없고 책에 우분투 버젼 관련 내용이 없어서 최선 버젼을 설치를 했는데
우분터 버젼을 제시해주시면 차레대로 나갈수 있을거 같습니다.

나빌레라의 이미지

저는 리눅스 민트를 쓰고 있습니다. 최신 버전이긴 한데 리눅스 민트가 아직 우분투 리눅스 최신버전을 적용하지 않았거나 gdb-arm-none-eabi 패키지는 여전히 지원하는 듯합니다. 왜냐면 제 시스템에서는 검색이 되거든요.

아무튼 구글로 검색해 보니

https://askubuntu.com/questions/1031103/how-to-install-gdb-arm-none-eabi-on-ubuntu-18-04

이런 게시물이 나옵니다. 내용을 보니

sudo apt install gdb-multiarch

명령으로 gdb-multiarch 패키지를 설치해서 그냥 gdb를 쓰면 되는 듯 합니다. gdb가 버전이 올라가면서 이제 자체적으로 여러 아키텍처를 지원하는 듯 하네요.

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

diet84의 이미지

확인한 내용 감사합니다.
제가 이해 한것은 이것 입니다.
현재 우분투 18.04.3 에서는 gdb-arm-none-eabi 설치 가 안된다.
그래서 그 대체인(상위버젼?) gdb-multiarch 설치를 한다.

그러면 책 내용의 모든 내용은 gdb-arm-none-eabi -> gdb-multiarch 이걸로 대체 가능하다 라는 결론을
얻었습니다.

우분트를 처음 접하는 거라 어려운게 많아 책은 초급자가 보기엔 어려운게 많은거 같습니다.

또한 책 내용중에

3장 28페이지 make -> 1회성 다시 빌드 하려면 clean 명령어 필수
make gdb -> makefile 파일 내용중 gdb-arm-none-eabi -> gdb-multiarch 교체로 해결

그래서 28장을 천천히 진행을 해보면 이렇습니다.
\ make -> 잘 됩니다.
\ make debug -> 잘됩니다. 그리고 창이 하나 뜹니다. 멈춤 검은색창
여기서 문제 입니다. 디버그 내용을 보면 타켓 보드를 띠어 놓는 현상 같은 걸로 보입니다.
그러면 터미널 창은 입력 하는 모양이 아니라 stop 영향으로

\ -> 아니라 그림처럼

\ make debug
생략
pulseaudio: Reason: Invalid argument
|(커서깜박 깜박)

즉 \ 명령어 입력 모드가 아닌 그냥 글자만 입력이 되는 형태가 진행이 되어서
다음 명령어인 make gdb 가 실행이 되지 않습니다. 그렇다고 창을 닫으면(검은색창)

\ 입력모드 가능
gdb 명령어 에서 targer remote:1234 는 연결시간 초과
gdb file build/navilos.axf -> 정상
gdb list -> 정상
gdb info register
The program has no regosters now.
라는 결과가 초래 됩니다. 아마 target remote 가 되면 해결이 될거 같은데 막히는 부분이 많은거 같습니다.

진행불가 jpg / 검은창 닫으면 가능2 / gdb 상황 그림파일 올려 봅니다.
감사합니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon 진행불가.png121.65 KB
Image icon 검은창을 닫으면 가능2.png137.97 KB
Image icon gdb 상황.png138.83 KB
나빌레라의 이미지

터미널 두 개 띄워서 작업하세요.

사실 당연한 건데 터미널 환경(리눅스든 윈도우든) 처음 써 보는 분에겐 어려울 수도 있겠군요.

겪고 계신 문제는 구글 검색하면 쉽게 해결 가능합니다.
검색을 생활화 합시다..

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.