모두시스 Twingle Book1 Yoga 사용기(1주)

장치 2018.06.24 15:49 Posted by soulfree >동네청년<

아이나비 XD11 pro를 쓰다가 도저히 힘들어서(...)

다스뵈이다에서 광고하는 Twingle Book1 Yoga를 보고 구매했다.


처음에 Yoga라길래 레노버 제품인줄알고 폭풍 검색했으나 나오질 않아서 알아보니

국내 업체 모두시스에서 중국 OEM으로 수입해오는 제품이었다.


모두시스 업체에서 링크해둔 리뷰나 딴지마켓 리뷰를 보면 

사무용으로 괜찮다 세컨PC로 괜찮다 무난하다라고 되어있는데

1주일 사용해본 후기가 필요할 것 같아서 적어봅니다.


일단 저의 사용용도는...


- 원격데스크톱으로 돌고있는 녹스 게임 관리

- 팟케스트 청취

- 스타크래프트 / 디아블로2 / 삼국지10 등 나온지 10년 넘은 윈도게임 플레이

- 루리웹 / 나무위키 등 웹질

- 동영상 / 로떼 야구경기 보기


이렇게 요약할 수 있다.


하나하나 트윙글 북1 요가로 했을 때 후기를 적어 보자면...


- 원격데스크톱으로 돌고있는 녹스 게임 관리

팀뷰어를 쓰다가 구글 원격데스크톱으로 넘어왔는데 끊어지는 느낌없이 아주 좋다. 매우 만족 별5


- 팟케스트 청취

볼륨도 크고 블루투스 연결도 잘되어 매우 만족한다. 

외장스피커는 스테레오 출력되는 감이 아주 좋다. 와이프가 사용하는 레노버 요가북에 버금가는 소리를 들려줌. 매우 만족... 

그런데 이어폰 단자를 완전히 밀어넣으면 오른쪽 (왼쪽이었나) 소리가 안남... 

약간 덜 끼우면 소리가 두쪽모두 들린다. 별4


- 스타크래프트 / 디아블로2 / 삼국지10 등 나온지 10년 넘은 윈도게임 플레이

스타크래프트 리마스터로 즐기고 있는데 HD그래픽 설정을 하면 매우 심하게 느려진다. 플레이 불가 할 정도이다.

그래픽 옵션을 모두 꺼주면 그나마 할만하다.

스타를 주로 하시거나 최신 게임을 하셔야 할분은 구입하시면 안될듯하다.

동영상 쪽에서 말씀을 드리겠으나 이 노트북은 영상쪽은 매우 조치 않다.  

디아블로2 삼국지10은 잘돌아간다. 별1


- 루리웹 / 나무위키 등 웹질

해상도도 좋고 WiFi 성능이 매우 마음에 든다. 웹페이지 넘어가는데 버벅임이 없는 것은 아니지만 이정도 사양에 충분하다. 

WiFi는 5Ghz를 지원하고 5Ghz가 원활하지 않는 곳에서는 자동으로 2.4Ghz로 전환되는 기능도 있는 것 같다.

키보드/터치/터치패드/마우스 인식도 쓸만하다. 키보드는 레노버 수준은 아니지만 저가형 팬타그래프 수준 이상이다.

별 5


- 동영상 / 로떼 야구경기 보기

문제는 동영상이다. 주 재생기는 다음 팟플레이어인데...

다음 팟플레이어를 설치해서 설치한 그대로의 기본 설정을 사용하면 매우 끊어진다.

일단 비디오 램이 따로 없어서 RAM을 공유하는데 기본이 64M로 지정되어있다... 

64M라니... 갑자기 무의식의 공간에서 리바 TNT라는 단어가 떠오른다(...)

바이오스에서 설정해서 최대치(512M)로 설정해두면 조금 나은데 

문제는 이런 노트북을 쓰는 사람들은 오히려 컴터를 잘모르는 분들일거란 이야기다. 

컴터를 잘아는 분이 셀러론달린 노트북은 살 일이 없기에.... (나는 뭘한걸까...그냥 돈이 없었을 뿐....)

팟플레이어에서 비디오 렌더러, 비디오 코덱등을 건드려 주면 어느정도 정상적인 재생이 가능하다.

(설정방법은 웹 검색 참조... 궁금하신 분은 댓글달아주시면 따로 저의 설정내용을 작성하겠습니다.)

그런데 윈도 기본 내장된 "영화 및 TV"를 사용해서 재생하면 끊어짐 및 버벅임이 없이 정상재생이 가능하다!!

(노트북 그래픽 성능이 나쁜 건지 내가 아직 알아야할게 많은 건지... 저가형 노트북이 전문가용 노트북으로 불려야하는 이유...)

다만 SMI 자막이 지원되지 않아서 주 재생기로 쓰기가 곤란한점이 있다.

그리고 웹에서 로떼 야구경기나 유튜브 영상을 720p로 보면 끊어짐 없이 잘 재생된다.

1080p으로는 감상이 힘든 수준이다.

별 2


- 기타 : 외부 마감 / 발열 / 충전 등

외부 마감은 매우 좋다. 레노버 요가 수준이다. 제조사가 레노버 OEM 하는 곳이 아닐까 생각이든다.

지문이 많이 묻는다는데 이건 비슷한 재질 노트북은 같은 수준으로 생각된다.

한가지 아쉬운 것은 터치가 지원되고 무게나 크기가 태블릿으로 쓰기에 적합한데 LCD 보호필름을 구하기가 힘들다는 점이다. 

사실 레노버 요가 노트북들은 무게나 크기가 그렇게 쓰기엔 좀 불편한데도 구매를 하면 보호필름을 포함해서 구매할 수가 있다.

발열은 팬이 없고 모니터 힌지가 있는 쪽이 조금 뜨거워지고 팜래스트쪽이 미지근해지는 편이나 팜래스트 쪽에 손을 대고 있기가 불편한 수준은 아니다. 

팬이 없어서 소음문제는 없을 것 같다. 키보드는 일반 팬타그래프 타격음 수준이다.

충전은 매우 빠르다. 20%에서 100%까지 2시간이 안걸리는 듯. 

5V 지원이 안되어 아쉽다는 의견이 있으나... 5V지원이 되더라도 이정도 충전하려면 전류량이 높은 휴대폰 충전기를 들고다녀야 할 거라서 딱히 DC 어뎁터를 하나더 들고다녀야 하는 것이 단점이라고 생각되지는 않는다.

다만 12V 어뎁터가 흔하지는 않으므로 그건 단점이 될 수 있겠다.


셀러론 노트북에 SSD를 단다고 내가 아쉽다는 부분에 성능 상승이 있을지 모르겠다.

마감 / 음질 / 소음 / 충전 / 통신 성능은 매우 만족

화질 만족

동영상 성능은 보통 혹은 조금 나쁨 

게임 성능 / 나쁨



다른 리뷰글은 칭찬 일색이라서 적어보았습니다.

이글을 보는 모두시스는 LCD 보호필름 파는 곳 좌표 찍어 주세요.

XD11 Pro - 한달 후...

장치 2018.03.24 11:53 Posted by soulfree >동네청년<

xd11 pro를 구매한지 한달쯤 되어 그간 있었던 일을 공유한다.


구입전에 SD 카드 인식이 해제되는 문제가 드라이버 문제인 것으로 생각되서 대수롭지 않게 생각했다가 엄청 고생하였다.

윈도10 레드스톤3로 업그레이드를 하면 해당 현상이 계속 발생되었다.

홈페이지의 윈도8버전 드라이버를 깔아보고 했지만 개선불가...


여러가지 다른 불량현상이 있어서 AS를 보내면서 레드스톤2로 원복을 요청하였는데..

AS담당 직원의 말로는 CPU 문제로... 개선이 불가능하기 때문에

원한다면 환불을 해준다고 한다...


말로만 듣던 MS/인텔의 아톰 CPU 버리기 인가??!!??


체리트레일 CPU가 나온지가 얼마안된걸로 알고있었는데... 벌써 버리다니... 아마도 멜트다운/스펙터 버그때문인듯...

환불 이야기에 너무 황당해서 환불을 한다고 말하고 전화를 끊었는데,

다시 생각해보니 SD카드는 빼놓고 작은 USB를 사용하면 되겠다 생각되서 교환하기로 하였다.


교환본을 받아보니 교환하기 이전 것보다 왠지 좋아보였다.

원래 붙어있던 보호필름은 지문이 잘묻었는데 교환되서 온 것은 지문이 많이 묻지 않는 것으로 바뀌었고,

뒤쪽에 세워놓을 수 있도록 된 판넬부분이 다른 재질로 코팅도 되어있었다.


교환된 것은 레드스톤2가 설치되어 있어서 레드스톤3로의 업그레이드를 필사적으로 막아보았다.

인터넷의 방법 중에 MS에서 제공하는 업데이트 제외 프로그램으로 1709 기능 업데이트를 제외시켜놨지만...

3일째 자고 일어나니.... 자동 업데이트가....되어 있었다.....


할수없이 SD카드를 포기하고 작은 USB를 사용해서 어찌어찌 사용중이었는데 문제는 생각보다 심각한 것으로 보인다..


아이나비 직원이 말했던 CPU쪽 문제는 SDIO 쪽의 문제인 것 같다.

아시는 분들은 아시겠지만 SDIO는 매우 빠른 고속통신을 지원하는데, 

이번 멜트다운 버그의 패치가 IO 성능이 매우 낮아지는 부작용이 있으므로 SDIO 쪽에도 많은 영향을 미치고 있는 것 같다.


그런데 바로 XD10 pro의 wifi 카드가 SDIO 방식이란 것...리얼텍의 SDIO 어뎁터,,,

한번씩 인터넷이 끊어지고 화면 하단에 와이파이 아이콘을 누르면 AP 목록이 나오지 않으며 심하면 부팅하기 전 까지 먹통이 되어버린다....;;;;;;

위와 같은 현상은 WiFi 신호가 잘 안잡히는 곳에서 나오는 현상으로 확인되었다.

거실에 공유기가 있는데 큰방에서 WiFi 신호가 잘 안잡혔는데, 공유기와 태블릿의 랜카드 사이에 무슨 동작이 일어나는지 정확하지는 않지만

태블릿의 WiFi 랜카드가 먹통이 되고 공유기도 뭔가를 열심히 처리를 하는 것인지 지연이 일어난 것인지 전체 인터넷이 느려지는 현상이 나타났다.(공유기와 연결되어 있던 휴대폰의 인터넷이 함께 느려졌다.)

리얼텍 무선랜카드 드라이버 버전이 잘 기억나지 않는데 (3000.06.얼마얼마 였던 것 같음...)

드라이버를 3008.54.414.2017로 업데이트를 하고 나서는 좀 나아진건지 확인 중에 있다.


암튼 레드스톤3로 발생된 문제점에 대해서...

과연 MS에서 고쳐줄런지?? 헛된 희망은 안가지는게 옳다.. 아톰은 희망이 없었었고 앞으로도 큰 기대는 없다...

가격이 40만원대인 비교적 고가의 태블릿서 일어난 일이라 안타깝지만...

산은 산이요 물은 물이로다.. USB 허브에 USB 메모리, 놀고있던 USB 랜카드 꽂아서 사용하기로 하였다...

배터리가 좀 빨리 닳는 것 같지만... 

아무래도 배터리가 빨리 닳고 위와 같이 잘못 짚은 부분도 있어서 드라이버를 업데이트 하고 테스트 중이다.

그렇지만 그 결과가 어떻든...

산은 산이요 물은 물이로다....


아이패드4 팔아버리고 아이나비 xd11 pro 쓰는 후기

장치 2018.02.25 11:58 Posted by soulfree >동네청년<
아이패드는 안되는 것이 (또는 돈이 많이 드는 것이) 여러가지 있고 또 개인적인 Apple에 대한 악감정때문에 팔아버리고 안드로이드/윈도 겸용 패드인 xd11 pro를 구입하였다.
인터넷에 사용기는 "5주간 사용기"라는 제목의 동일한 리뷰의 복붙이 대부분이라
다분히 모험이라고 생각은 들었지만 스펙을 믿고 구입을 감행했습니다...
어제까지 아이패드를 쓰다가 오늘 아이나비를 쓰면서 느끼는 점

** 장점
- 키보드 동봉 : 키감은 저렴한 펜타그래프 블루투스 키보드 키감. 괜찮다
- 블루투스 마우스 인식 가능 : 윈도 안드로이드 모두 (이 태블릿을 산 이유 1...)
- 지지대가 있어서 패드를 세워서 사용할 수 있다.
- 가로모드로 화면이 양옆으로 길고 윈도라서 동시에 창을 여러개 띄워놓을 수 있다.(사람에 따라 장점일수도 단점일수도)
- 윈도 메인컴에 하드를 여러개 달아서 미디어 서버로 쓰고 있는데, 윈도 네트워크 공유 폴더로 파일을 공유하거나 바로 열수 있어 편하다.
- 삼국지10이 돌아간다.(이 태블릿을 산 이유 2...)
- 윈도이므로 팀뷰어를 띄워놓고 다른 작업을 해도 1분 후에 팀뷰어 연결을 끊지 않는다.(이 태블릿을 산 이유 3...)
- 큰 화면에서 안드로이드 게임을 할 수 있음.
- 윈도에서 PC카톡을 깔면, 임시 휴대전화번호얻기, iPad에서 iPhone 버전 카톡깔기 등등 난리를 부리지 않아도 카톡을 쓸 수 있음!!(이 태블릿을 산 이유 4...)
- 각종슬롯이 빵빵하다.(SD카드 사용가능, 일반 USB포트, USB-C포트, 마이크로 HDMI 포트)
- 열이 좀 나긴하는데 미지근해서 만족스럽다.

==> 아이패드를 쓰면서 불편했던 점이 곧 장점이 되는듯 허다..



** 단점
- 마감이.. 마감이 정말 아이패드에 비해서 엄청 차이난다. 지금까지 느낀 마감의 차이..
   ㄴ 패드를 세우는 뒷면의 지지대 모서리를 보면 자석이 있는데, 구입 당일날 이 자석이 지지대로부터 떨어져서 본체에 붙어버림. 순간 접착제와 테이프로 조치 하였다.



   ㄴ 충전기가 일반 어뎁터인데 끝까지 체결을 못 시킬때가 있다.
      어느정도 밀어넣으면 다 들어가는 것 처럼 느껴지는데 사실은 오른쪽 사진처럼 끝까지 밀어넣어야 한다.



   ㄴ 윈도 모드에서 소리를 듣고 있지 않다가 소리 재생을 시작하면 찌직거리는 노이즈가 항상 나오면서 소리가 시작된다.
   ㄴ 아마도.. 중국의 제품을 아이나비에서 수입했거나 ROM은 중국의 제품이 아닌가 싶다.
      운영체제가 실행되지 않은 상태(시스템 종료 후 충전기 연결하여 나오는 화면, 부팅 시 부팅 운영체제를 고르는 화면)에서 나오는 글꼴이 중국언어에서 나오는 글꼴처럼 보여서 그렇게 생각된다.
- 이건 윈도의 문제이고 설정을 바꾸면 되겠지만... 윈도의 각 버튼들이 터치하기에 너무 작다.
- 윈도 켜놓고 충전기를 꼿으면 인식됐다가 안됐다가를 반복할때가 한번씩 있다...
- SD카드에 삼국지10을 설치해놓고 플레이를 했더니 SD카드가 mount 해제되는 경우가 있다. 이건 레노버 miix 시리즈도 이런 문제가 있는것 같아서 윈도나 인텔의 드라이버 문제가 아닌가 싶다.

==> 단점들이 좀 불편을 주거나 모양이 빠지게 할수는 있지만 그렇다고 아이패드 처럼 원하는 것을 못할 정도의 문제는 아니다.


** 종합 요약

- 아이패드 쓰다가 xd11을 쓰는 느낌은 ... 내비없는 밴츠를 타다가 풀옵 그렌저를 타면 이런 느낌이 들까 싶다. 

- xd11은 학생이라 가난한 분, 노트북은 좀 부담스러운 분에게 노트북 대용으로 괜찮을듯 싶은데.. 그래도 메인 노트북이나 데탑이 필요할 경우가 생기지 않을까?

아이나비 xd11 pro VS 레노버 miix 320 full hd 128 plus pen

장치 2018.02.11 11:23 Posted by soulfree >동네청년<
아이나비 xd11 pro
2in1 태블릿PC / OS:안드로이드 6.0 마시멜로우 / OS:윈도우 10 / 29.5㎝(11.6″) / IPS / 1920x1080 / 189ppi / 16:9 / 10포인트 / 인텔아톰 체리트레일 X7-Z8750 / 쿼드코어 / 1.6GHz~2.56GHz / DDR3 / 램:4GB / 내장:64GB / eMMC / microSD카드슬롯 / HD Graphics 405 / USB포트 / 듀얼스피커 / 카메라 / 후면:500만화소 / 전면:200만화소 / 오토포커스 / 동영상촬영 / WiFi전용 / 블루투스 / V4.0 / USB타입C / 일반USB3.0 / 3.5mm 이어폰 / 전용키보드 포함 / 전용펜 미지원 / 가로:302.5mm / 세로:180mm / 두께:9.7mm / 822g(키보드350g) / 9,000mAh / 사용시간:최대12시간

정리
안드로이드를 쓸수있다.(단점일수도)
화면이 약간 크다.
시퓨 글픽이 아주 미세하게 더 빠를 것이다.
키보드 독이 없어도 세울수 있다.
AS


레노버 miix320 fullhd 128
2in1 태블릿PC / OS:윈도우 10 Home / 25.65㎝(10.1″) / IPS / 1920x1080 / 218ppi / 16:9 / 멀티터치 / 인텔아톰 체리트레일 Z8350 / 쿼드코어 / 1.44GHz~1.92GHz / DDR3 / 램:4GB / 내장:128GB / eMMC / microSD카드슬롯 / HD Graphic / 터치펜지원 / USB포트 / 카메라 / 후면:500만화소 / 전면:200만화소 / 오토포커스 / WiFi전용 / 기가 WiFi / WiFi 듀얼밴드 / 블루투스 / V4.2 / USB타입C / 일반USB2.0 / HDMI / 3.5mm 이어폰 / 전용키보드 포함 / 전용펜 포함 / 가로:249mm / 세로:178mm / 두께:9mm / 564g(키보드:512g) / 사용시간:최대10시간


정리
안드로이드가 없고 내장메모리가 두배이상 넓다.
가볍다.
기본 펜 지원.
왠지 마감이 더 좋을듯하다..

배터리에 관한 열가지 팁

장치 2011.10.22 01:12 Posted by soulfree >동네청년<

http://icbank.com/data/ICBZone/ICBManagement/semi_tech/%EC%9D%BC%EB%B0%98-%EB%B0%B0%ED%84%B0%EB%A6%AC%EA%B4%80%ED%95%9C(%EC%A0%84%EC%9E%90).html

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

C 특수문자

장치 2010.10.18 10:29 Posted by soulfree >동네청년<

\a       Beep음을 컴퓨터 스피커로 출력
\b       Back space(한칸 뒤로 갑니다..)
\n       현재 위치한 줄의 다음 줄로 내려갑니다.
\r       현재 위치한 줄의 멘 처음으로 갑니다..
\t       수평 Tab
\v       수직 Tab
\\       \(역슬래쉬)
\'       작은 따옴표
\"       큰 따옴표
\0       NULL문자
\0??     8진수 ??에 대한 문자
\x??     16진수 ??에 대한 문자.

'장치' 카테고리의 다른 글

아이나비 xd11 pro VS 레노버 miix 320 full hd 128 plus pen  (0) 2018.02.11
배터리에 관한 열가지 팁  (0) 2011.10.22
C 특수문자  (0) 2010.10.18
UART/USART와 RS232/485등  (0) 2010.09.28
A/D 컨버터 사용법  (0) 2010.03.22
USART  (0) 2010.03.22

UART/USART와 RS232/485등

장치 2010.09.28 17:37 Posted by soulfree >동네청년<

AVR 직렬통신을 다루다가 기본적으로 ATMega128은 UART를 지원하는데 RS232 통신을 위한 MAX2323이 왜 필요한지 궁금한 생각이 들었다.  둘은 다른 것이라는 것만 알고 있었지 왜 다른지는 몰랐다가 이제서야 개념이 잡힌거 같아서 기록해둔다.

UART USART -> 직렬통신 프로토콜을 정의. 둘은 동기화/비동기화 여부가 차이가 있다.
RS232,485 -> 직렬통신을 이용하여 통신하기 위한 1:1(232) 1:n(485) 등의 단말 구조나 전송거리 등에 영향이 있는 전기적 신호에 대한 정의를 해둔 것

참고한 문서는 다음과 같다.
출처 : www.isama.net

'장치' 카테고리의 다른 글

배터리에 관한 열가지 팁  (0) 2011.10.22
C 특수문자  (0) 2010.10.18
UART/USART와 RS232/485등  (0) 2010.09.28
A/D 컨버터 사용법  (0) 2010.03.22
USART  (0) 2010.03.22
PXA255 커널컴파일 과정중 만난 PATH_MAX와 그에 관련된 글  (0) 2008.07.24
TAG rs232, UART, USART

A/D 컨버터 사용법

장치 2010.03.22 18:18 Posted by soulfree >동네청년<
아날로그 디지털 변환기(A/D 컨버터)는 센서와 같은 소자에서 들어오는 아날로그 값을 디지털 값으로 변경하는 기능을 가지고 있으며, 실제 제어기를 구성할 때 없어서는 안될 소자이다.

Atmega128의 경우 10비트 축차 근사형의 A/D 컨버터를 8개 내장하고 있다. 실질적으로 A/D 컨버터는 한개이며, 채널을 바꿔가며 아날로그 신호를 입력받을 수 있다.

A/D 컨버터를 제어하기 위한 레지스터로는 아날로그 디지털 멀티플렉서 선택 제지스터(ADMUX)와 아날로그 디지털 컨버터 제어 상태 레지스터(ADCSR)가 있다. ADMUX는 A/D 신호를 입력받을 채널을 0에서 7까지 선택한다. 그리고, 변환 채널이 선택되면 ADCSR을 설정하여 컨버전 프리스케일러 설정, 컨버터 완료 인터럽트를 설정한다. 모든 설정이 끝나면 전역 인터럽트 플래그를 '셋'하여 인터럽트를 활성화한다. 아날로그 디지털 변환 완료 인터럽트 처리 루틴을 구성한 후, ADCSR의 6번 비트를 셋시켜 A/D 변환을 시작하게 한다.

변환이 시작한 후 변환 완료 플래그를 주기적으로 점검하거나 아날로그 디지털 변환 완료 인터럽트를 이용하여 A/D 컨버전 이후의 데이터 처리 루틴을 구성할 수 있다. 변환이 종료되어 변환 데이터를 저장할 때, 반드시 하위 데이터를 먼저 읽어서 저장해야 한다. 왜냐하면, 상위 데이터를 먼저 읽으면, 하위 데이터에 쓰레기 값이 들어갈 수 있기 때문이다.

'장치' 카테고리의 다른 글

C 특수문자  (0) 2010.10.18
UART/USART와 RS232/485등  (0) 2010.09.28
A/D 컨버터 사용법  (0) 2010.03.22
USART  (0) 2010.03.22
PXA255 커널컴파일 과정중 만난 PATH_MAX와 그에 관련된 글  (0) 2008.07.24
논리회로 GAL  (0) 2008.05.20

USART

장치 2010.03.22 18:04 Posted by soulfree >동네청년<
USART는 외부 디바이스와 직렬로 인터페이스를 통해 데이터를 송수신할 수 있게 해준다. 외부 디바이스는 다른 마이컴이 될 수 있고 PC도 될 수 있다. PC의 COM포트와 연결하기 위해서는 9핀 케이블과 데이터 전송의 레벨을 조절해 주는 전용 통신 칩이 추가로 필요하다.

범용 동기 수신 송신기(USART)로 데이터를 수신하거나 송신하는 방법에 대해 알아보자. USART를 제어하기 위한 레지스터로는 USART를 통해 보낼 데이터나 받은 데이터를 두는 USART I/O 데이터 레지스터(UDRn), USART 상태를 알 수 있는 USART 제어 상태 레지스터(UCSRnA, UCSRnB, UCSRnC) 그리고 데이터 통신의 속도를 결정하는 보레이트(Baud Rate)를 설정하는 USART 보레이트 레지스터(UBRRnL, UBRRnH)가 있다.

통신 속도를 결정해 주는 보레이트가 얼마만큼 가능한지는 마이컴에 부착될 수 있는 크리스탈이나 오실레이터의 속도에 의해 좌우된다. 보레이트 설정하는 방법으로 사용 크리스탈의 주파수를 계산식에 넣어서 나온 값을 UBRR에 넣을 수도 있지만, 데이터 시트에 예로 나와있는 표를 참조할 수도 있다.

USART로 데이터 송수신을 위한 순서는 UCSR에 송수신 인터럽트 및 방식을 설정하고, USART 보레이트 레지스터(UBRRnL, UBRRnH)를 설정하여 데이터 송수신 통신 속도를 선택한다. 그리고, 전역 인터럽트 플래그를 '셋'하여 인터럽트를 활성한 후, 그에 따른 USART 송수신 인터럽트 처리 루틴을 구성한다.

'장치' 카테고리의 다른 글

UART/USART와 RS232/485등  (0) 2010.09.28
A/D 컨버터 사용법  (0) 2010.03.22
USART  (0) 2010.03.22
PXA255 커널컴파일 과정중 만난 PATH_MAX와 그에 관련된 글  (0) 2008.07.24
논리회로 GAL  (0) 2008.05.20
한백전자 사이트  (0) 2006.09.15

PXA255 커널컴파일 과정중 만난 PATH_MAX와 그에 관련된 글

장치 2008.07.24 15:49 Posted by soulfree >동네청년<

1. PATH_MAX에 대한 이해를 도울 수 있는 글...
http://kldp.org/node/81425

2. 'PATH_MAX'  declared error 해결 방법
http://www.uclibc.org/lists/busybox/2001-November/005206.html  -> linux/limits.h 라이브러리에 정의하는 방법...
ucurce 관련 설치가 되지 않아서 발생하는 문제라는 답변도 있었습니다만 ,
rpm -qa | grep ncurse 해서 확인해 본 결과 이 문제의 알맞은 해답은 아닌 것 같습니다.

'장치' 카테고리의 다른 글

A/D 컨버터 사용법  (0) 2010.03.22
USART  (0) 2010.03.22
PXA255 커널컴파일 과정중 만난 PATH_MAX와 그에 관련된 글  (0) 2008.07.24
논리회로 GAL  (0) 2008.05.20
한백전자 사이트  (0) 2006.09.15
한백전자의 EMPOS-II  (2) 2006.09.14

논리회로 GAL

장치 2008.05.20 18:59 Posted by soulfree >동네청년<

'장치' 카테고리의 다른 글

USART  (0) 2010.03.22
PXA255 커널컴파일 과정중 만난 PATH_MAX와 그에 관련된 글  (0) 2008.07.24
논리회로 GAL  (0) 2008.05.20
한백전자 사이트  (0) 2006.09.15
한백전자의 EMPOS-II  (2) 2006.09.14
toolchain downloads  (0) 2006.09.14

한백전자 사이트

장치 2006.09.15 00:03 Posted by soulfree >동네청년<
http://www.hanback.co.kr

'장치' 카테고리의 다른 글

PXA255 커널컴파일 과정중 만난 PATH_MAX와 그에 관련된 글  (0) 2008.07.24
논리회로 GAL  (0) 2008.05.20
한백전자 사이트  (0) 2006.09.15
한백전자의 EMPOS-II  (2) 2006.09.14
toolchain downloads  (0) 2006.09.14
crosstool-howto  (0) 2006.09.14

한백전자의 EMPOS-II

장치 2006.09.14 23:51 Posted by soulfree >동네청년<

한백전자의 EMPOS-II에 관한 자료를 다운로드 받을 수 있는 곳입니다.

구분

파일명

설명

Bootloader

empos_boot-20031022.zip

부트로더

Kernel

linux-2.4.19.tar.gz

리눅스 커널

patch-2.4.19-rmk4.gz

리눅스 커널 패치

diff-2.4.19-rmk4-pxa2.gz

암 패치

diff-2.4.19-rmk4-pxa2-empx1-20031024.gz

Empos 패치

Tools

bootp-2.4.3-7.i386.rpm

bootp

gcc-2.95.3.tar.gz

gcc 컴파일러

mtd-snapshot-20030811.zip

mtd

Jflash-Xscale.tar.gz

Jflash-Xscale

minicom-2.00.0-6.i386.rpm

minicom

tftp-server-0.29-3.i386.rpm

tftp

tmake-1.8.tar.gz

tmake

cross-tools.tgz

tool-chain

Manual

empos_boot_guide.pdf

bootloader Manual

Menual_program_source.tar.gz

Source

UserGuide_SW_2nd.pdf

EMPOS S/W Manual

UserManual_HW.pdf

EMPOS H/W Manual

Datasheet

AT24c01_02_04_08_16.pdf

2-Wire Serial EEPROM

74LVTH16244.pdf

16-bit Buffer

PXA255.pdf

CPU

74LCX08.pdf

Quad 2 AND Gate

74LCX125.pdf

Quad Buffer

74LCX138.pdf

1 of 8 Decoder/Demultiplexer

74LCX14.pdf

Inverter with Schmitt Trigger

74LCX245.pdf

bidirectional Transceiver

74LCX32.pdf

Quad 2 Input OR Gate

74LCX374.pdf

Octal D-Type Flip Flop

HT6542B.pdf

Mouse / Keyboard Controller

ADM3202_22_1385_a.pdf

Line Drivers / Receivers

ads7846.pdf

Touch-Screen Controller

at93c46a.pdf

3-Wire Serial EEPROM

cs4202_1.pdf

Audio Codec 97 With Headphone Amp

cs4334.pdf

8-pin 24bit 96Khz Stereo D/A Converter

dm74als1005.pdf

Hex Inverting Driver

ds_k4s641632f.pdf

64M SDRAM

hsdl3600.pdf

IrDA Compliant Infrared Transceiver

LB064V02_A1.pdf

Liquid Crystal Display (LCD)

LB064V02_B1.pdf

Liquid Crystal Display With EGIP

lt1085.pdf

Positive Fixed Regulators

MAX1602.pdf

Card Bus And PCMCIA Power-Switching...

MAX3222_MAX3241.pdf

3.3V to 5.5V, Up to 1Mbps ...

MAX6375_MAX6380.pdf

3 Pin Voltage Detectors

MAX811.pdf

4-Pin ?P Voltage Monitors with Manual Reset Input

mic5219.pdf

500mA Peak Output LDO Regurator

rtc4513.pdf
rtc-4513.pdf

Real Time Clock

TS61xx20Series.pdf

10/100 Base Pulse Transformers

x9511.pdf

Push Button Controller

Seminal

hardware.ppt

성현이 발표자료 -하드웨어 분석

hardware_2.ppt

승호 발표자료 -하드웨어 세부분석

AC97.ppt

수진선배 발표자료 -AC97

AC97_2.ppt

수진선배 발표자료2 -AC97

MatLab

Matlab01.ppt

MatLab 강의 1

'장치' 카테고리의 다른 글

논리회로 GAL  (0) 2008.05.20
한백전자 사이트  (0) 2006.09.15
한백전자의 EMPOS-II  (2) 2006.09.14
toolchain downloads  (0) 2006.09.14
crosstool-howto  (0) 2006.09.14
Toolchain for SMDK2410X targets HOWTO  (0) 2006.09.14

toolchain downloads

장치 2006.09.14 23:13 Posted by soulfree >동네청년<
http://falinux.com/pds/toolchain.html

'장치' 카테고리의 다른 글

한백전자 사이트  (0) 2006.09.15
한백전자의 EMPOS-II  (2) 2006.09.14
toolchain downloads  (0) 2006.09.14
crosstool-howto  (0) 2006.09.14
Toolchain for SMDK2410X targets HOWTO  (0) 2006.09.14
내장형시스템 실습 1주차  (0) 2006.09.14

crosstool-howto

장치 2006.09.14 23:03 Posted by soulfree >동네청년<

crosstool-howto

Crosstool is a set of scripts to build and test several versions of gcc and glibc for most architectures supported by glibc. It will even download and patch the original tarballs for you. The resulting script and associated patches, and the latest version of this doc, are available at kegel.com/crosstool.

Crosstool was originally developed for embedded system developers, but is also useful for mainstream developers who simply want their compiles to go fast or who need to build programs that run on older versions of Linux (e.g. Red Hat 6.2), but don't want to develop on those ancient systems.

It includes minimal patches for gcc and glibc needed to build a few combinations of (alpha, arm, i686, ia64, mips, powerpc, powerpc64, sh4, sparc, sparc64, s390, x86_64) x (gcc-2.95.3 ... gcc-4.0.0) x (glibc-2.1.3 ... glibc-2.3.5).

It also supports building toolchains that target Cygwin; see demo-cygwin.sh.

Crosstool is a portable shell script. You can use it to build linux-targeted compilers that run on Linux, Mac OS X, Solaris, and Cygwin. It includes support for creating hetrogenous build clusters; it lets you use virtually every computer in the building, regardless of operating system or CPU type, to speed up your Linux compiles.

Contents

Quick Start

Download and unpack. For instance:
wget http://kegel.com/crosstool/crosstool-0.38.tar.gztar -xzvf crosstool-0.38.tar.gzcd crosstool-0.38
Then look at the demo scripts; there's one for each supported CPU type. For instance, demo-i686.sh is an example of how to build a toolchain that targets the i686 processor. It sets three important variables:
TARBALLS_DIR=$HOME/downloads        # where it will save source tarballsRESULT_TOP=/opt/crosstool           # where it will install the toolsGCC_LANGUAGES="c,c++,java,f77"      # which languages it will make compilers for
It then builds gcc-3.4.0 and glibc-2.3.2 for i686 with the line
 eval `cat i686.dat gcc-3.4.0-glibc-2.3.2.dat`  sh all.sh --notest 
Edit the script if you want to change any of these settings or versions. Then (as root) create the directory /opt/crosstool and make it writable by you, and finally (as yourself) run the demo script, e.g.
sudo mkdir /opt/crosstoolsudo chown $USER /opt/crosstoolsh demo-i686.sh
When it finishes, you can run the new compiler as /opt/crosstool/gcc-3.4.0-glibc-2.3.2/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-gcc. (You might want to put /opt/crosstool/gcc-3.4.0-glibc-2.3.2/i686-unknown-linux-gnu/bin on your PATH; then you can run the compiler as i686-unknown-linux-gnu-gcc.)

Static Builds

If for some reason you want the resulting toolchain binaries to be statically linked, set the following environment variables before running crosstool.sh (or all.sh):
BINUTILS_EXTRA_CONFIG="LDFLAGS=-all-static"GCC_EXTRA_CONFIG="LDFLAGS=-static"

Building RPMs

Building RPMs of the compiler used to be done by the same shell script, all.sh, with the --buildrpm option, but that was not enough to satisfy real Linux distributions, which require true .src.rpm's. So now the procedure to build an RPM is to first build the .src.rpm, then build the .rpm from that, using rpmbuild in the traditional way.

A script demonstrating how to build .src.rpm's is buildsrpms.sh. A script demonstrating how to build both .src.rpm's and .rpm's is buildrpms.sh. Both of these are only examples; I use them myself to build a specific set of toolchains.

Each .src.rpm generated by buildsrpms.sh builds toolchains for all supported CPUs, where 'supported' means 'the CPU is listed in the buildlogs directory as having successfully built a working toolchain'. This greatly cuts down on the number of .src.rpm's needed. To build for just e.g. i686, run rpmbuild with options "--without all --with i686".

Faster builds with distcc

You can use distcc to distribute compilation across multiple computers for faster compiles. The distcc that comes with your version of Linux will work fine for most cases. However, it may be more convenient to instead use the script 'mkdistcc.sh' included with crosstool to install a crosstool-specific distcc (partly because that's what the mkdistcclinks.sh script assumes, and partly because it includes a patch that improves support for large hetrogenous clusters; see below).

To install distcc/distccd from source, run

RESULT_TOP=/opt/crosstool \TARBALLS_DIR=$HOME/downloads \sh mkdistcc.shcd /opt/crosstoolsh common/bin/mkdistcclinks.sh
To set up distccd as a service, run
sudo sh /opt/crosstool/common/bin/install-distccd.sh

Regardless of how you installed crosstool-distcc, you then need to edit /opt/crosstool/common/etc/hosts and append the hostnames of all the computers running your distccd.

You can then run the distributed compiler as /opt/crosstool/gcc-3.3.3-glibc-2.3.2/i686-unknown-linux-gnu/distributed/bin/i686-unknown-linux-gnu-gcc. (You might want to put /opt/crosstool/gcc-3.3.3-glibc-2.3.2/i686-unknown-linux-gnu/distributed/bin on your PATH; then you can run the distributed compiler as i686-unknown-linux-gnu-gcc.)

To get any speed benefit, you'll need to run several compiles in parallel. See e.g. make's -j option. Also note that only simple compiling with the -c option, not linking, is sped up, and that only C and C++ compiles are distributed (fortran and java compiles are not distributed, sorry).

Getting the best performance out of distcc is a fine art. See e.g. Benjamin Meyer's page "Distcc optimizations and how to compile kdelibs from scratch in six minutes".

You can monitor your distcc jobs by running

/opt/crosstool/common/bin/distccmon-test 5
This will display a description of your active remote jobs once every five seconds.

Hetrogenous distcc clusters

Here's a scenario sometimes useful at large universities or companies, where one often has a central file server which all clients access. Crosstool is built for multiple versions of gcc and glibc, once for kind of workstation in the cluster, and installed in e.g. /shared/crosstool/`config.guess`. Compilers are invoked via absolute paths so toolchains with different versions of glibc can be distinguished. The absolute path is built using config.guess so, regardless of which kind of workstation the developer is on, he or she can invoke a compiler that can run on their workstation.

For example, when building a C program for modern x86 linux, developers set

CC=/shared/crosstool/`config.guess`/gcc-3.3.3-glibc-2.3.2/i686-unknown-linux-gnu/distributed/bin/i686-unknown-linux-gnu-gcc
And when building a C program for old Red Hat Linux 6.2 x86, developers might set
CC=/shared/crosstool/`config.guess`/gcc-3.3.3-glibc-2.1.3/i686-unknown-linux-gnu/distributed/bin/i686-unknown-linux-gnu-gcc

A tricky part of this scenario is that the distcc server needs to be able to handle absolute paths for *other* architectures, possibly installed at a different location. The patch patches/distcc-2.14/distcc-stringmap.patch, applied by mkdistcc.sh, adds a feature to the distccd server to read a $prefix/etc/distcc/apps file containing absolute paths to all known compilers, and to ignore all but the last N path components when locating the compiler to satisfy received compile requests. The distccd startup scripts created by crosstool's install-distccd.sh turn on that feature.

gcc-3.4.0's precompiled headers and profile-driven optimization features require lockstep synchronization, so they probably work only if the client and the server are the same CPU type and operating system. (And using pch with distcc may require apple's -fpch-preprocess patch; see http://gcc.gnu.org/ml/gcc/2003-03/msg00369.html)

Canadian Cross Builds

Those long, strange names of the form "i686-unknown-linux-gnu" are called GNU configuration names. The GNU build and test scripts use these extensively. When you run the demo-$CPU.sh script, it sources the $CPU.dat file, which sets a variable TARGET containing the GNU configuration name for the target CPU. For instance, i686.dat contains the line
TARGET=i686-unknown-linux-gnu
In the general case, there can be three machine types: the build machine which builds the compilers, the host machine where the compilers will run, and the target machine for which the compilers will generate code.

Building compilers that will run on some other linux system is called a Canadian Cross. It's useful if, say, you're putting together a hetrogenous build cluster consisting of 32 bit and 64 bit workstations, and you want to run natively compiled compilers on each.

To do a Canadian Cross build with crosstool, you have to run it three times:

  1. once to build a toolchain that runs on the build system and generates code for the host system
  2. once to build a toolchain that runs on the build system and generates code for the target system
  3. once to build a toolchain that runs on the host system and generates code for the target system
The last two runs are identical except that on the last run, you have to set a few environment variables:
  • GCC_HOST should be the GNU configuration name (e.g. powerpc-750-linux-gnu) of the host machine
  • PATH must be set to include the bin directory of the host and target compilers that can run on the build machine
  • CC and AR have to be set to a compiler that generates code that runs on the host, and a version of ar that can handle archives of code for the host.
demo-canadian.sh (when I finish it) will demonstrate how to get this working.

If you want the use resulting toolchain as a native toolchain, i.e. if you want it to search /lib and /usr/lib, you'll probably need to edit its specs file to set the cross_compiler parameter to 0; see this thread in the crossgcc mailing list.

Scripts

  • crosstool.sh: Compiles gcc and glibc. This is the most important file, and it can be used by itself, without any other files from the tarball, if you are so inclined.
  • getandpatch.sh: Download, unpack, and patch the binutils, linux, gcc, and glibc source tarballs.
  • crosstest.sh: Run the gcc and glibc regression tests remotely.
  • ptx.sh: Build userland apps (e.g. /bin/sh) using ptxdist.
  • testhello.sh: Verifies trivial programs can be built with the new compiler
  • all.sh: Invoke all the above scripts. Supposedly more convenient that running them individually. (See below.)
  • mkdistcc.sh: A script to download, build, and patch distcc.
  • mkdistcclinks.sh: A script to create masquerade directories for each installed compiler to make using distcc easier.
  • demo-CPU.sh: One demo script for each CPU type that sets environment variables for that CPU, then runs all.sh and mkdistcc.sh.
  • demo.sh: Big demo script that runs all the little demo-CPU.sh scripts.
  • clean.sh: remove junk files; used by maintainer before creating tarballs
  • mkjail.sh: create the files needed for a chroot jail (useful when doing regression testing of glibc)
  • testjail.sh: test a remote chroot jail

Data Files

  • CPU.dat: One file for each CPU type; sets GNU target name
  • gcc-VERSION-glibc-VERSION.dat: One file for each supported combination of gcc and glibc; sets binutils, gcc, and glibc versions and options
  • patches/PROGRAM/*.patch: the patches I needed for each version of each program. The patches for each tool are stored in a subdirectory of patches/ named after the tool (e.g. patches/gcc-3.3). Each patch starts with comments about what it's for, and has links to any associated discussion. This is a small but hopefully high quality and maintainable patch repository; newer versions of ptxdist use a mirror of this repository.
  • summaries/*: example outputs from old crosstest.sh runs

Notes

If you want to build gcc-3.3 or later, you'll need a recent gcc (3.2 or later) on your workstation to build it with.

The scripts are fairly generic. You may need to tweak the parameters of the script to match your exact CPU type, or add a few patches needed to the patches/* directories, and run the build script again, if your tests indicate that programs built with the new compiler have problems.

In particular, if your CPU lacks an FPU, you might need to tell glibc that by setting before running all.sh. For example, see powerpc-405.dat, which sets

GLIBC_EXTRA_CONFIG="--without-fp"

Once you trust the toolchain can build and run simple statically linked 'hello, world' programs (see e.g. testhello.sh), test it with real applications.

If you use these scripts to build a toolchain, please send a note to the crossgcc mailing list indicating which platform you used it on, and how well it worked for you. Please be sure to mention which release of the crosstool scripts you used.

If you add support for a new CPU type, please send your changes to the crossgcc mailing list so they can be incorporated in a future release.

Testing

If you're targeting i686-linux, and are using a released version of gcc and glibc, you probably don't need to worry about testing the toolchain.

But if you're using a new or uncommon CPU type, or an unreleased version of gcc or glibc, and want some assurance that you have built a working compiler and C library, you should run the gcc and glibc test suites. See crosstest-howto.html.

all.sh

all.sh invokes the four scripts that download, build, and test the toolchain. It takes four options:
  • --nounpack, which means 'don't run getandbuild.sh'. This is useful for quick reruns or when just testing.
  • --nobuild, which means 'don't run crosstool.sh'. This is useful for when you just want to run regression tests.
  • --builduserland, which means 'run ptx.sh'. This is useful for when you need to build busybox for some reason, e.g. if you want to run the regression tests, but the target's normal shell can't run against the new shared C libraries.
  • --notest, which means 'don't run crosstest.sh'. This is useful for when you don't have a target to test on, or don't want to spend the time to test. See crosstest-howto.html for information about running the test suite.

Build Platform Notes

Linux

Crosstool was developed on Linux, so most of the rough edges have been polished off. However, if running crosstool.sh on Linux fails with an error like
"soinit.c:25: internal compiler error: in named_section_flags, at varasm.c:..."
then you may be running into gcc bug 9552. One workaround is to delete the file gcc-pr-9552-workaround.patch from crosstool/patches/glibc-2.3.2, and rerun. Another is to switch to a different version of binutils (2.14 seems to be the dividing line).

NetBSD

You'll need to install GNU Diffutils or GNU Patch, since BSD's patch utility doesn't accept the --fuzz parameter.

Mac OS X

You need to install gawk, gnu sed, and wget before you can build crosstool on Mac OS X. The way I installed them was using fink, but DarwinPorts would probably do as well.

On some (older?) versions of Mac OS X, you'll need to raise the stack size with the command

ulimit -s 8192
else make may segfault.

If wget or any other fink program segfaults, try 'sudo /sw/var/lib/fink/prebound/update-package-prebinding.pl -f' once to get around a hiccup in fink's incremental prelinking of apps. See the fink FAQ.

When using 2.6 kernel headers on systems (like Mac OS X) where gcc doesn't support the -shared flag, you may see the error

gcc: unrecognized option `-shared'ld: Undefined symbols:_mainmake[1]: *** [scripts/kconfig/libkconfig.so] Error 1make: *** [oldconfig] Error 2 
This is a well-known issue (see e.g. Peter Samuelson's post of 7 Nov 2002 Bertrand Marquis a patch that might help on 29 June 2004. It would be nice if someone figured out a patch that could go into the mainline kernel sources to deal with this issue.

Another problem building Linux on Mac OS X is described, together with a Mac OS X specific workaround, by Martin Schaffner's post of 22 May 2004.

Cygwin

Crosstool, and probably gcc and glibc's configure scripts, assume that directory names do not contain any spaces. This is often violated on Windows. Please take care to not use directory names with spaces in them when running crosstool. It might work, but if it doesn't, you've been warned. (Same goes for Mac OS X.)

This isn't really a crosstool problem, but configuring linux-2.6 on cygwin may fail with the error

$ make menuconfig HOSTCC  scripts/basic/fixdep HOSTCC  scripts/basic/split-include HOSTCC  scripts/basic/docproc HOSTLD  scripts/kconfig/mconfcollect2: ld terminated with signal 11 [Segmentation fault], core dumped
A possible fix described e.g. by Bertrand Marquis' post of 29 June 2004 is to patch linux-2.6/scripts/kconfig/Makefile to just use libkconfig.o rather than first making a .so.

Cygwin-1.5.9-1 had a bug that prevents it from building glibc. You can work around this by updating to Cygwin-1.5.10-2.

Solaris Build Considerations

Crosstool ought to build on Solaris as long as it has been updated with the appropriate set of GNU tools, but this has not been tested.

binutils-2.15 may require this patch to work on Solaris, else it is said to segfault when building the Linux kernel.

glibc documents which GNU tools it requires in its INSTALL file. The list is roughly: make 3.79, GCC 3.2, binutils 2.13, texinfo 3.12f, awk 3.0, sed 3.02, or newer. gcc documents a few other requirements in gcc.gnu.org/install/specific.html, which says that gcc won't build at all with the default solaris shell, and you're supposed to work around it like this:

% CONFIG_SHELL=/bin/ksh% export CONFIG_SHELL
before running crosstool.

That page also advises that you may need to install some Solaris patches, and install gcc-3.2.3 or newer before trying to build newer versions of gcc.

Troubleshooting

Download Problems

all.sh calls getandpatch.sh, which looks in the directory specified by TARBALLS_DIR for source tarballs, and downloads them to there if not found.

If the download hangs, and you need to use a proxy, try telling wget about your proxy before running all.sh by doing

$ export http_proxy=<proxy_host>:<port>
If the download still hangs, download the tarball that's causing the hang manually to the directory specified by TARBALLS_DIR.

Current Issues

  • all.sh's --builduserland seems to be broken at the moment.
  • NPTL is not yet supported.
  • These scripts, unlike Bill Gatliff's original crossgcc scripts, don't support bare metal newlib targets. They should, but I needed to focus on targeting Linux first. See contrib/newlib for a user-contributed fix.
  • These scripts don't support uClibc yet, but see below.
  • The hppa target is not yet supported.
  • glibc-2.3.2 doesn't build for cris; looks like the maintainer needs to create a sysdep-cancel.h for cris. I no longer try cris, since it seems to be unmaintained.
See the ChangeLog for more issues.

Build Status

The script regtest-run.sh tries to build a number of combinations of gcc, glibc, and CPU, and saves the last hundred or so lines of the build log in the file buildlogs$cpu-$gcc-$glibc.log.txt, along with a summary of the build in the file buildlogs$cpu-$gcc-$glibc.dat.txt. The script regtest-report.sh creates the file buildlogs/$version/index.html summarizing the results. Note: this reflects whether the toolchains could be built, not whether they work! Also note: running regtest-run.sh takes a LOT of cpu power, so it uses ssh to spawn build jobs on multiple machines. Read the script carefully before running it.

Contributed Patches

A few users of the crosstool scripts have submitted patches. I'm saving these in the 'contrib' directory until I have time to test them.
  • testsetup - my scripts which are handy when running test suite remotely
  • newlib, newlib2 - scripts to build newlib toolchains
  • crosstool-uclibc-0.28-rc5.patch to build uclibc toolchains (see below)
  • contrib/xtool-ro.patch lets you run with sources in a read-only directory.

uClibc

The script contrib/demo-uclibc.sh demonstrates how to patch an older version of crosstool to support uclibc. This script, with editing, can be used to build ARM7, PPC405, and maybe MIPS uclibc toolchains. A future version of crosstool will merge the patch.

Links

Patch repositories (handy if you are looking for a fix to a specific problem): There are many good general references for people building crosscompilers. Here is a somewhat outdated set: Here are a few posts about which combinations of versions work: Related Mailing lists (corrections welcome):


Portions copyright 2003, Ixia Communications
Portions copyright 2003, 2004, 2005 Google
Released under the GPL.
Last revision 21 July 2005 by dank@kegel.com

'장치' 카테고리의 다른 글

한백전자 사이트  (0) 2006.09.15
한백전자의 EMPOS-II  (2) 2006.09.14
toolchain downloads  (0) 2006.09.14
crosstool-howto  (0) 2006.09.14
Toolchain for SMDK2410X targets HOWTO  (0) 2006.09.14
내장형시스템 실습 1주차  (0) 2006.09.14

Toolchain for SMDK2410X targets HOWTO

장치 2006.09.14 23:00 Posted by soulfree >동네청년<
Toolchain for SMDK2410X targets HOWTO

이 문서는
http://wiki.falinux.com/wiki.php/CROSSGCC3.3REZ-X5
http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-August/005942.html
http://www.aleph1.co.uk/armlinux/docs/toolchain/toolchHOWTO.pdf
http://blog.naver.com/union_sy.do?Redirect=Log&logNo=80002185314
여기의 내용을 조합하여 정리 하였음을 알려 드립니다.

1) Pre-built Toolchains
binary 형태 또는 rpm(패키지로) 제공되는 cross compiler
1 Native Pre-built Compilers
2 Emdebian
3 LART
4 Compaq

Pre-built Toolchains은 단지 binary 파일을 정해둔 디렉토리로 옮기고 path만 설정하면 사용할 수 있다.
Pre-built Toolchains은 kernel header 파일 포함하여 만들어진 cross compiler이기 때문에 kernel에 영향을 받는 특정 프로그램은 이 cross compiler로 컴파일이 되더라도 board상에서 정확하게 동작 한다고 장담 할 수 없다.

2) Building the Toolchain
아래 설명되는 toolchain을 구축하는 방법은 http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-August/005942.html 문서에 설명되어 있는 script 내용을 기초로 하여 작성 하였으며 The GNU Toolchain for ARM targets HOWTO (Wookey, Chris Rutter, Jeff Sutherland, Paul Webb) 문서를 참조 하였다.

1 필요한 소스 패키지
리눅스를 이용한 개발환경으로 선택했다면 크로스 컴파일 환경을 구축하여야 한다. 이 크로스 컴파일 환경에 포함되는 것은 다음과 같은 패키지가 필요로 하고 이 패키지들의 모음을 일반적으로 cross compile toolchain이라고도 한다.
1) binutils    : 어셈블러 및 로더 기타 툴 ( GNU )
2) glibc        : 크로스 컴파일 구축을 위한 라이브러리 및 일반 라이브러리
3) gcc        : 컴파일러  ( 시그너스 )
4) kernel    : 커널 소스
5) gdb        : 디버거

각각의 버전은 다음과 같다.
1) binutils    : binutils-2.14.90.0.6
2) glibc        : glibc-2.3.2
3) gcc        : gcc-3.3
4) kernel    : linux-2.4.18 (Linu@ SDK에서 제공하는 kernel)
5) gdb        : gdb-6.2.1

2 설치 전 작업
다운 받은 파일 목록을 정리하면
1) binutils-2.14.90.0.6.tar.gz
2) linux-2.4.19-x5-v04.tar.gz
3) gcc-3.3.tar.gz
4) glibc-2.3.2.tar.gz
5) glibc-linuxthreads-2.3.2.tar.gz
6) gdb-6.2.1.tar.gz

등 총 6개가 됩니다. 설치하려고 하는 linux에 다음 디렉토리를 만든다.
#mkdir -p project/toolchain
(이것은 사용하기 위하여 편의상 한 것이지 절대적인 것은 아님)
project/toolchain 에 다운 받은 파일을 가져다 놓는다.

  1. 설치 전 주의 사항 #
이제부터 진행하는 순서는 꼭! 지켜야 한다. 이유는 각 설치되는 패키지들의 의존 관계가 있기 때문이다. 설치는 root 권한으로 하여야 한다.

3 커널설치
여기서는 본격적인 커널 패치에 관련된 내용은 아니다. 단지 크로스 컴파일러를 만들기 위한 커널 설치이다. 크로스 컴파일러를 만들어 가는 과정에서 커널 헤더가 필요하기 때문에 하는 것이다.
kernel 설치에 관한 자세한 내용은 linuette SDK에서 제공하는 설치 가이드 문서를 확인한다.

여기서 기억해야 할 것은 이 커널 디렉토리의 위치이다. 우리는 커널의 위치로
/linuette/target/box/kernel로 설정한 상태이다.

4 GDB 패키지 설치
GDB는 크로스 컴파일 toolchain의 순서와 상관없이 언제든지 설치가 가능하다. 다음과 같이 설치하면 된다.
#tar zxvf gdb-6.2.1.tar.gz
이 명령을 수행하면 gdb-6.2.1 란 디렉토리가 생긴다. 이 디렉토리로 옮긴다.
#cd gdb-6.2.1
환경설정을 한다.
#./configure --target=arm-linux --build=i686-pc-linux-gnu --prefix=/usr
컴파일을 한다.

참조
-?target=arm-linux
target의 이름을 정하는 옵션
arm-linux
Linux/ARM을 지원하는 ELF로 컴파일
그 외에도 arm-linuxaout, arm-aout, arm-coff, arm-elf, arm-thumb 종류가 있다.
processor 종류에 따라
armv2
- ARM v2 architecture를 지원, 특히 26-bit mode code로 강제로 사용하게 한다.
armv3l, armv3b
- ARM v3 architecture (ARM610, ARM710), l -> little-endian b -> big-endian
armv4l, armv4b
- ARM v4 architecture (StrongARM, ARM7TDMI, ARM8, ARM9)
armv5l, armv5b
- ARM v5 architecture (XScale, ARM10)

#make
설치를 한다.
#make install
아마도 별 에러 없이 끝날 것이다.
제대로 설치되었다면 다음과 같은 명령을 치면 아래와 같이 나열된다.
#ls -al /usr/bin/arm-linux*
-rwxr-xr-x    1 root     root      5770628 10월 24 13:55 /usr/bin/arm-linux-gdb*
-rwxr-xr-x    1 root     root      1477505 10월 24 13:55 /usr/bin/arm-linux-run*

Binutils 패키지 설치 #
#tar zxvf binutils-2.14.90.0.6.tar.gz
#cd binutils-2.14.90.0.6
컴파일 환경을 설정한다.
#./configure --target=arm-linux --prefix=/usr --program-prefix=arm-linux-
컴파일 한다.
--program-prefix=arm-linux-
binutils의 파일을 생성할 때 arm-linux-가 붙게 된다.
#make
설치를 한다.
#make install
아마도 별 무리 없이 끝났을 것이다. 이 부분을 수행하고 나면 /usr/arm-linux 란 디렉토리가 생성된다.
#ls -al usr/arm-linux
합계 16
drwxr-xr-x    4 root     root         4096 10월 24 14:04 ./
drwxr-xr-x   19 root     root         4096 10월 24 14:04 ../
drwxr-xr-x    2 root     root         4096 10월 24 14:04 bin/
drwxr-xr-x    3 root     root         4096 10월 24 14:04 lib/

대부분의 실행파일은 /usr/bin에 복사 된다.
#ls /usr/bin/arm-linux-*
/usr/bin/arm-linux-addr2line*    /usr/bin/arm-linux-gdb*
/usr/bin/arm-linux-objdump*    /usr/bin/arm-linux-size*
/usr/bin/arm-linux-ar*        /usr/bin/arm-linux-ld*
/usr/bin/arm-linux-ranlib*    /usr/bin/arm-linux-strings*
/usr/bin/arm-linux-as*        /usr/bin/arm-linux-nm*
/usr/bin/arm-linux-readelf*    /usr/bin/arm-linux-strip*
/usr/bin/arm-linux-c++filt*    /usr/bin/arm-linux-objcopy* 
/usr/bin/arm-linux-run*

5 bootstrap compiler
gcc 초기 컴파일 단계에서 초기 컴파일 과정이 필요한 이유는 gcc cross compiler를 맨 처음 컴파일 할 때 필요한 환경이 제대로 갖춰져 있지 않기 때문이다. target 플랫폼과 관련 있는 각종 헤더 파일과 glibc 라이브러리가 없는 상황에서 gcc cross compiler를 어떻게 컴파일 하겠는가 (x86에서 x86용 gcc컴파일러를 컴파일 할 때는 헤더 파일과 glibc 라이브러리가 이미 있었다.)? 이런 문제를 극복하는 방법이 처음부터 완벽한 gcc교차 컴파일러를 만드는 대신 헤더 파일과 라이브러리를 준비할 수 있는 기능만 탑재한 gcc bootstrap compiler를 만드는 것이다.

이제 실제 크로스 컴파일러를 만든다. 압축을 푼다.
#tar zxvf gcc-3.3.tar.gz
몇 가지 파일을 수정한다.
#cd gcc-3.3
#perl -pi -e 's/^(TARGET_LIBGCC2_CFLAGS.*)/$1 -Dinhibit_libc -D__gthr_posix_h/' gcc/config/arm/t-linux
#echo 'T_CFLAGS = -Dinhibit_libc -D__gthr_posix_h' >> gcc/config/arm/t-linux

이것은 실제로 다음과 같이 파일을 직접 고치는 것과 동일 한 것이다.

==========[ 편집기를 사용했을때 ]==========
#cd gcc/config/arm/
#vi t-linux

TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC    
수정 
TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC -Dinhibit_libc
-D__gthr_posix_h

마지막 라인에 추가
T_CFLAGS = -Dinhibit_libc -D__gthr_posix_h
    
========================================

위에 편집 한 내용은 현재 bootstrap gcc를 만들고 있다는 사실을 컴파일러에 알려주기 위해 gcc-3.3/gcc/config/arm/t-linux 환경 설정 파일에 "T_CFLAGS= -Dinhibit_libc-D_gthr_posix_h"를 추가한다. (흔히 이를 inhibit_libc hack으로 부른다.) inhibit_libc는 libc를 사용하지 않겠다는 의미이고, _gthr_posix.h는 pthread 관련 헤더 파일을 찾지 않겠다는 의미이다.

이제 환경 설정과 컴파일을 수행한다.
#./configure --target=arm-linux --prefix=/usr
--with-headers=/linuette/target/box/kernel/include --disable-shared --disable-threads --enable-languages="c" --nfp --without-fp -?with-cpu=arm9
--with-softfloat-support=internal

s3c2410은 arm920t 임으로 ?with-cpu=arm9으로 줘야 하며 ?-with-headers 옵션의 kernel header의 경로는 자신이 target board에 올리는 kernel 경로에 맞게 작성한다.
thread 지원을 끄기 위해 disable-threads 옵션을 주며 enable-languages에 c를 지정한다. bootstrap gcc 컴파일 과정에서 c컴파일러 이외에 다른 컴파일러는 만들 수 없다.

컴파일을 한다.
#make
인스톨을 한다.
#make install
인스톨까지 정상적으로 수행 되었다. 확인을 위해서 다음과 같이 수행해 본다.
#ls /usr/bin/arm-linux-*
/usr/bin/arm-linux-addr2line*    /usr/bin/arm-linux-gcc*
/usr/bin/arm-linux-ld*        /usr/bin/arm-linux-readelf*
/usr/bin/arm-linux-ar*        /usr/bin/arm-linux-gcc-3.3*
/usr/bin/arm-linux-nm*        /usr/bin/arm-linux-run*
/usr/bin/arm-linux-as*        /usr/bin/arm-linux-gccbug*
/usr/bin/arm-linux-objcopy*    /usr/bin/arm-linux-size*
/usr/bin/arm-linux-c++filt*    /usr/bin/arm-linux-gcov*
/usr/bin/arm-linux-objdump*    /usr/bin/arm-linux-strings*
/usr/bin/arm-linux-cpp*        /usr/bin/arm-linux-gdb*
/usr/bin/arm-linux-ranlib*    /usr/bin/arm-linux-strip*

6 glibc 패키지 설치
가장 문제가 되는 glibc 패키지의 컴파일을 한다. 압축을 푼다.
#tar zxvf glibc-2.3.2.tar.gz
#tar -C glibc-2.3.2 -zxf glibc-linuxthreads-2.3.2.tar.gz
디렉토리를 이동한다.
#cd glibc-2.3.2
몇 가지를 수정한다.
./sysdeps/unix/sysv/linux/arm/sysdep.h 파일에서
    
161              : "a1", "memory");             \
의 내용을 
161              : "memory");               \
로 바꾼다.
     
./stdio-common/sscanf.c 파일에서 
    
30 sscanf (s, format)
31      const char *s;
32      const char *format;
    

    
30 sscanf (const char *s, const char *format, ...)
로 바꾼다.
    
./linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 파일에서 

37   ENTRY (name)                              \

37   ENTRY (name);                             \
로 바꾼다.

빌드할 디렉토리를 만든다.
#mkdir ../glibcbuild
#cd ../glibcbuild
환경 설정을 한다.
#CC=arm-linux-gcc ../glibc-2.3.2/configure arm-linux --build=i686-pc-linux-gnu
--with-headers=/linuette/target/box/kernel/include --enable-add-ons --enable-shared --prefix=/usr/arm-linux --with-cpu=arm9 --without-fp --enable-kernel=2.4.18

linuette에서 제공하는 kernel은 2.4.18이다.

컴파일을 한다.
#make
설치를 한다.
#make install


7 gcc 재설치
이제 마지막으로 gcc를 재설치 하여야 한다. 물론 옵션이 달라진다. 나중에 컴파일 할 때 라이브러리 의존성 문제가 생기므로 사전에 링크를 걸어 준다.
#cd /usr/arm-linux/lib
#ln -s ../../lib/* .

#sed -e '/*** BUG/d' /usr/arm-linux/lib/libc.so > /usr/arm-linux/lib/libc.so.new
#mv -f /usr/arm-linux/lib/libc.so.new -f /usr/arm-linux/lib/libc.so
#sed -e '/*** BUG/d' /usr/arm-linux/lib/libpthread.so >
/usr/arm-linux/lib/libpthread.so.new
#mv -f /usr/arm-linux/lib/libpthread.so.new -f /usr/arm-linux/lib/libpthread.so

#cd project/toolchain
기존에 내용을 모두 지운다.
#rm -rf gcc-3.3    
다시 압축을 푼다.
#tar zxvf gcc-3.3.tar.gz
#cd gcc-3.3
이제 환경 설정과 컴파일을 수행합니다. 환경을 설정한다.
#./configure --target=arm-linux --prefix=/usr --program-prefix=arm-linux-
--with-headers=/linuette/target/box/kernel/include/ --with-cpu=arm9
--with-softfloat-support=internal --enable-languages=c,c++ --nfp
컴파일을 한다.
#make
인스톨을 한다.
#make install

'장치' 카테고리의 다른 글

한백전자 사이트  (0) 2006.09.15
한백전자의 EMPOS-II  (2) 2006.09.14
toolchain downloads  (0) 2006.09.14
crosstool-howto  (0) 2006.09.14
Toolchain for SMDK2410X targets HOWTO  (0) 2006.09.14
내장형시스템 실습 1주차  (0) 2006.09.14

내장형시스템 실습 1주차

장치 2006.09.14 21:12 Posted by soulfree >동네청년<
실험노트를 만드는 것으로 2분반 김제욱 조교와도 이야기가 되었습니다.
 
실험 주제별로 예비레포트를 노트에 작성해 와서 실험 끝나고
 
동작여부를 검사맞고, 어떻게 어떻게 했다는 내용을 작성해주고
 
조교의 도장이나 사인을 받으면 됩니다.
 
양식은 아래를 참고하면 됩니다.
 
다음주에 수행할 실습은 toolchain환경구축과 커널 컴파일 입니다.
 
toolchain이 뭐하는 것인지, 어떤걸로 구성되어 있는지, 어떻게 만드는
 
것인지 커널 컴파일은 어떻게 하는 것인지 나름대로 조사해 와서 그
 
지식을 바탕으로 실습시간에 적용해 보는 것으로 하면 됩니다.
 
원래 월요일에 올리기로 약속했는데 늦어져서 죄송합니다.
 

실습명 : 해당 주에 실습할 실습명

준비물 : 준비물이라고 해봤자 어떤 라이브러리가 필요한가, 어떤 프로그램이 필요한가 조사한 내용을 바탕으로 필요한 것들이 무엇인지 적어주면 됩니다.


예비 조사 내용

해당 실습할 내용에 대해 조사한 내용을 간결하게 적어주면 됩니다. 어떤 라이브러리, 프로그램이 필요한데 어떤 역할을 하는 것이며, 그것들을 바탕으로 실습을 어떻게 하면 된다라고 하는 실습 전에 예습의 성격이 큽니다.

결과내용

실습한 내용이 재대로 동작하는 지를 검사맞은 후에 자신이 실습중 수행한 내용을 적어놓으면 됩니다. 느낀점이라든가, 그런걸 추가해도 됩니다.

'장치' 카테고리의 다른 글

한백전자 사이트  (0) 2006.09.15
한백전자의 EMPOS-II  (2) 2006.09.14
toolchain downloads  (0) 2006.09.14
crosstool-howto  (0) 2006.09.14
Toolchain for SMDK2410X targets HOWTO  (0) 2006.09.14
내장형시스템 실습 1주차  (0) 2006.09.14