'Programming'에 해당되는 글 58건

  1. 2010.10.23 아두이노 리눅스에서 사용하기 7
  2. 2010.10.03 Makefile애서 플레그도 제대로 붙여야지....
  3. 2010.10.01 [MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?! 4
  4. 2010.09.23 [버그] glade 이미지 파일 경로 설정
  5. 2010.09.11 터미널에서는 GDB가 아니라 CGDB를 씁시다. 4

아두이노 리눅스에서 사용하기

내용과는 아무 상관없는 아두아노 IDE스샷... 그림이 있어야 좀 눈에 띄지 않겠어요? :D

사용자 삽입 이미지

1 장치를 켜고 USB에 연결, 다시한번 회로도에 맞게 되어있는지 확인


2 커널에서 다음을 모듈/커널에 장착해 넣는다 (어지간해선 일반유저는 이거 안건들여도 됨)

Device Drivers ---> [*]USB support --> [*/M] USB Modem (CDC ACM) support

Device Drivers ---> [*]USB support --> <*/M>USB Serial Coverter support --->

[*/M] USB FTDI Single Port Serial Driver

첫번째껀 아두아노에서  usb serial 통신을하기 위한 시리얼포드 설정이다

(윈도우의 COM PORT - 옛날에 모뎀쓸때 쓰던 포트)

보통 메뉴얼에 보면 /dev/ttyUSB*가 나온다고 하는데 다 그런건 아니다

/dev/ttyACM*이 나와도 정상이니깐 신경쓰지말고

뒤에 preferences.txt 파일 설정할때 조심만 하도록 하자

두번째껀 그냥 간단하게 아두이노 에서 사용하는 USB드라이버의 한 종류(FTDI) 라고 생각하면 된다

- 어쨋던 모듈에 신경쓰기 싫다고 하면 나처럼 다 커널안에 넣어버리는것도 한 방법이다.....

3. arduino 설치

- 보통 어지간한 배포판에는 거의다 포함 되어있기 때문에 별 걱정없이 걍 설치해주면 된다...

(적어도 아치, 우분투, 데비안엔 있는것은 확인했다)

아! 그리고 꼭 "32비트용 패키지 인지 64비트용 패키지인지" 확인하고 설치하도록 하자.

(이거때문에 내 황금같은 일요일을 날렸단 말이오!!! 겨우 이거가지고 ㅠㅠ)

이 비트는 지금 운영체제의 비트를 의미하는것이 아니다 - CPU임

32비트 CPU를 가진 컴퓨터라면, 32비트 패키지를 설치해주고,

64비트 CPU를 가진 컴퓨터라면 64비트를 설치하도록 하자

3. uucp그룹에 사용자를 추가히켜 준다.
gpasswd -a <YourID> uucp
4. ~/.arduino/preferences.txt에서

serial.port = /dev/ttyACM0 # 뭐 ttyUSB* 라면 그걸로 맞춰주면 된다

로 설정한다

5. arduino (스케치) 를 실행

Tools -> Board ->에 자신의 arduino모델을 선택

Tools -> Serial Port -> /dev/ttyACM0를 선택한다 (아마 선택되어 있을수도 있다)

- 이제 코드를 집어넣고 upload를 해보자. 스케치에서 작업하는 것은 여기까지

다시한번........Trubleshooting

1. 아두아노 스케치에서 Tool -> Serial Port가 회색인데?, 당근 /dev에 장치도 안올라오구 왜이럼?
- FTDI 모듈이 안잡혔거나, 커널에서 USB 시리얼 포트 설정이 안되서 그럼, 2번을 보셈

2. 컴파일은 잘되는데 업로드가 안되는?
- 다시한번 확인해보셈, 과연 패키지랑 님 시퓨랑 맞나.

ps; 참고로 내 모델은 Uno

이후에 외부 에디터(아마 Vim)에서 아두아노를 컴파일해서 업로드 하는 방법을 포스팅 할 예정
(솔까말 저기 아두이노 스케치로 에디팅하기 정말 불편하다...... 그래서......)


근데 그건 언제일까.......

'Hardware' 카테고리의 다른 글

아두이노에서 AVR 사용하기  (2) 2010.11.10
NEXT-510UHP USB허브 구입기  (10) 2010.09.13
모니터를 사자 #1  (6) 2010.08.01

Makefile애서 플레그도 제대로 붙여야지....

오랜만에 프로파일링 기능함 써볼라구  Makefile.in 에 -pg 옵션을 추가..

그리고 막 소스를 고치고.... 컴파일해서 실행을.....

그런데! 잘 돌아가는 게.. 라이브러리내부에서 (그러니깐 제가 만든게 아니라는) 에러가..

"state not found" 라니, "connection time out" 이라니...

어째서 제대로 이벤트시그널을 Detect해내지를 못하니... 줘도 못먹냐 ㅠㅠ

뭔가 잘못 고쳤을거야... 라고 생각

그래서 소스를 열심히 살펴봄.. 별 바꾼것도 없는데 안됨....

혹시 몰라서 모듈을 따로 분리한다음에 컴파일 해봤음 - "어 이건 되넹" 뭐가 문제야 하다가..

Makefile.in을 차자보니깐 이게 왠걸.. CFLAG에 옵션이 추가된게 아니라 LIB에 -pg가 추가되어 있음

아놔...... 대체 왜 에러가 안난거야? 링크할때나 에러 안나나....

그래서 CFLAG에 추가하니깐 잘 돌아가네염,

아놔 이게 무슨짓이야 이거때문에 어젯밤이랑 오늘 오전 날렸음


3줄 요약

Makefile에도 신경좀 씁시다.


프로그램이 이상하게 돌아가는게 링킹/컴파일이 제대로 안되서(에러가 안나도!)

그럴수두 있다는

[MFC] Thread안에서는 CSocket 클래스를 사용하면 안된다?!

이메일 보낼일이 있어서 코드 프로젝트에서 SMTP 코드를 배껴서 사용중이 었음

(원래 소스가 그렇게 되어 있었다오 -_- 쓰고 싶어서 쓴게 아님 ㅠㅠ

회사에서는 보통 c&p 디버깅 / 테스트가 일이라... 아 정말 싫다.)

그런데 이넘이 쓰레드 안아서 돌아가야할 필요가 있어서 않에 넣어서 사용하고 있는데

갑자기 뻑뻑 죽어버리는거임 - 아마도 MFC assertion? 에러 였던거 같은데...

디버깅 돌려보니깐 무슨 이름도 모르는 생판첨보는 MFC함수에 브포가 찍혀있고 -_-.....

함수스택타고 위로 올라가보니깐 CSocket.Create() 메소드 - 를 쓴 부분까지 올라오게 되더군여

이거 뭔소린가... 걍 싱글스레드 쓸땐 잘 작동하던 놈이 왜 이짓거리나...

분명히 그냥 socket은 thread-safe하다고 봤었는데 - 이상하다 -

그래서 구글링해 본결과 MFC버그라는 이야기도 있어서... 혹시해어 Create메소드만 고쳤는데

이렇게 하니깐 주소를 잘못참조했네 어쩌구 에러가.... 

그냥 그래서 (하라는대로?) 클래스에서 CSocket 멤버를 빼버리고

죄다  socket, send, recv, close 함수로 대체해버렸음 -_-...

-> MFC에서 Thread안에서 돌아가는 프로그램에서는 CSocket클래스를 쓰지말자??
(라고는 해도 아무리 봐도 그냥 땜질용 처방 같다 ;;; 원래문제는 따로 있을듯)

ps :  이부분에 대해서 좀 아시는 분은 댓글을. 뭐 자원을 더 할당하라 그런이야기는 있던...

[버그] glade 이미지 파일 경로 설정

glade ver 3.6.7에서

리소스 파일을 수정할때

"패스명을 정확하게 수동" 으로 넣어야한다.

(옆에 폴더 아이콘 눌러서 지정해줘도, *.glade파일이 있는 경로랑 같지 않으면 비록 glade 내부에서는

그림이 잘 나오지만, 실제로 프로그램을 실행시키면 다 액박으로 뜬다)

그러니깐 Play_icon.png 라는 파일이 glade파일이 있는 하위홀더 icons에 있다면,

직접 icon/Play_icon.png라고 써놓아야한다.

(시실뭐... 나 같은 경우에는 그냥 직접 xml파일에다가 경로를 썼음)

(원래 스크린샷을 찍을렸는데 display가 갈궈서 자꾸 검은 화면만 나오기 때문에 패스)

터미널에서는 GDB가 아니라 CGDB를 씁시다.

오늘 말입니다... 갑자기 GDB로 소스 디버깅(기존소스 분석.........)을 하고 않았더니

GDB에도 색을 넣고 싶었지 말입니다?

그래서 구글링 하다 보니깐 찿았어여? cgdb......

사용자 삽입 이미지

1 gdb 보다 더 괜찮은 놈이 있네.....

cgdb.. 얘도 분명 전에 알았던건데..... 오늘보니깐 또 새롭군여

아치에서는 기본패키지로는 없어서 (......) AUR에서 받아서 컴파일함, 시간은 얼마 안걸리네요....

이젠 소스코드보러 Shift눌러서 Screen변환 (그러고 보니 screen사용한지 벌써 4년이 다되가는군여 아아)

할필요도 없이 바로 소스 나오니깐 편해요... (vim이랑 gdb랑 왔다갔다할 필요가 없다는 말이죠.)

윗창(vim짝퉁), 아랫창(레알(?) GDB) 이 있어서 소스보면서 코딩하니깐 확 눈에 잘 들어오네요.

(왜 vim 짝퉁이냐면.... 어지간한 기능은 제대로 동작하는데... 일부기능은 동작을 안해서 -_- )

메녈페이지 읽기 귀차느신분을 위해서 기초적인 내용은 제가 간단 요약했습니다.

뭐 이정도만 알아도 대충 쓰는덴 지장 없으실거에요.

1 윗창(vim), 아랫창(gdb) 간 서로 이동하려면, i <-> ESC키 를 서로 사용하시면 됩니다.

2 윗창(vim)에서 기본키들은 거의 vim이랑 같습니다,

(hjkl 같은 이동키도 당근 같구여,검색할때 사용하는 /.?  도 페이지 이동 ctrl+f, ctrl+b, n, N 도 마찬가지죠)

3 아랫창(GDB)는 기존 GDB랑 거의 유사합니다... 오히려 일부기능은 더 보기 편하게 만들어 놨더군요.

4 break pointer를 break, clear 하는 방법은 (윗창,  vim 에서) space키를 누르면 토글 됩니다

5 소스 파일을 이동하려면 (윗창에서)  o키를 누르시면 됩니다.

그럼 현제 디렉토리에 있는 파일들 리스트가 쭈욱~ 출력되구요, 선택하시면 되겠죠

6 물론 종료하는건 ( vim 창에서) :q해서 빠져나가거나, gdb창에서 q해서 빠져나가시면 됩니다.


메녈페이지는 다음 링크보면 나와염... 더 자세한 내용을 보시려면 다음링크를 방문해 보세요

http://cgdb.sourceforge.net/docs/cgdb-no-split.html#Controlling-CGDB

아주 갈수력 실력이 줄어드는게 눈에 보이는군요

아아... 옛날엔 당연하던게 이제보니깐 짱좋은 기능이 되버렸네여

어서 빨리 윈도우플밍 가튼거 버리고 터미널의 세계로 빠지고 싶네여.... 눅스하는 회사 가가시퍼여......

어?! 그러고 보니 난 GDB자체에 색깔넣는게 목표였지 (GDB 명령어라던가,,, 변수에 따른 글자색이라던가)

이게 목표가 아니었네 .... 행여 이쪽에 대해서 아시는분이 있으면 댓글 부탁 드려요!

ps; 으아아아악 ctags가 안먹혀어..........

2 무기력증

요즘엔 말이져..

다 하기 싫다는.. 걍 귀차늠...

일하는것도 보람도 없고 걍 별 흥미없는걸로 시간때우고 웝급받고 하는 이런 무한루프에 빠진..

그러다보니 메너리즘 크리 + 무기력증 이 엄습........

그래서 또 구글신님께 빌어봤어요. 그래서 찾은게 이거... 역시 나만 그런게 아니였어

http://kldp.org/node/52929

비록 5년전 글이지만.... 뭔가 와닫는게 있네요.

1. 목표먼저 세우거나
2. 걍 놀거나
3. 컴터를 버린다 (어?)

............ 아중에 하난가;

음... 역시 "계획", "하루 목표" 이게 없어서 무기력해졌던거 같군여.. 아 그리고 필수적으로 "실행" 이 있어야

겠지여... 이게 없으면 앞에 2개가 완전 도루묵이니까.....
prev 1 2 3 4 5 ··· 12 next