본문 바로가기

프로그래밍/ARM(임베디드)9

[s5pc100] proc filesystem 만들어보기. 그림설명. 프록이란게 실습과정을 보면 모듈 프로그램을 작성해서 추가하고 만들어진 proc 파일을 읽으면서 결과를 보는 식인데. 그럼, 그냥 파일에다 쓰고, cat으로 읽는거랑 무슨 차이인가? 싶었다. 그 차이는, 일반적으로 디스크에 글을 썻다가 디스크에서 읽어 들이는 것인데. 프록은 장치파일 이기 때문에 메모리에 내용이 저장되는 셈이다. 메모리에 쓰고 메모리에서 읽어오는 것. 따라서 재부팅하면 날아갈 것이며, 실제로 파일에 쓰는 것이 아니지만, 리눅스에서 개발자나 이해를 돕기 위해서 모든 장치들을 파일형식으로 해서, 파일과 동일한 방식으로 사용할 수 있게 만들었다. 그 편리함이 오히려 약간의 혼돈을 주었던 것. pro_filesystem 실습을 시작해 보자. 빨간색 박스는 모듈 프로그램시 반드시 있어야 하는 틀이고.. 2011. 11. 4.
[s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개). 그림설명. [s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개) [s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개) [s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개) 모듈의 작성 및 추가 삭제를 모른다면 아래 링크를 참조 하자. [s5pc100] 모듈 만들기 기초. (hello 출력하기) 모듈에는 심볼을 공개 하는 것과 공개하지 않는 것이 있다. 심볼이란.. c로 비유하자면 함수와 비슷한데 기본적으로 있어야 하는 2개의 시작/종료 함수를 제외한 사용자가 정의한 함수같은 것. 이해가 안된다면 일단 아래 예제들을 따라가 보자. 심볼을 공개하지 않는 예제이다. 2개의 박스에 들어있는 함수가 기본적으로 있어야 하는 함수. MODULE_LICENSE("GPL") 은 내가.. 2011. 10. 31.
[s5pc100] 모듈 만들기 기초. (hello 출력하기). 그림설명. [s5pc100] 모듈 만들기 기초. (hello 출력하기) [s5pc100] 모듈 만들기 기초. (hello 출력하기) [s5pc100] 모듈 만들기 기초. (hello 출력하기) vi hello_module.c c 프로그래밍에서 메인이 있어야 하는 형식이 있듯이, 모듈에서도 기본적이 형식이 있다. init_module() / cleanup_module() 함수가 있다. 이름에서 알 수 있듯이 시작하는 함수와 끝나는 함수이다. main 처럼 반드시 있어야 하는 함수이다. 헌데.. 이런 함수의 이름을 다르게 쓰고 싶은 경우. module_init() / moduel_exit() 라는 메크로 함수가 있다. 이 함수는 인자로 받은 함수를 init_module로 연결해 주는 셈. 그래서 내 마음대로 함수를 생.. 2011. 10. 31.
[s5pc100] nfs로 보드 부팅하기. 그림 설명. virtualBox 네트워크 설정. 인터넷이 아닌, 보드와 연결할 어댑터2를 활성화 합니다. 브리지 어탭터를 선택하고 이름은 각자 컴퓨터의 네트워크 카드를 지정해 줍니다. 명령어가 길어서 오타가 나거나 정상적으로 실행이 되지 않는 경우 첨부파일에서 붙여 넣기 하세요. apt-get install nfs-kernel-server (nfs 설치) y눌러서 설치해 줍니다. nfs로 사용할 폴더 생성 및 권한 부여. nfs로 사용할 폴더를 만들고, 폴더 권한을 777로 지정. (nfsroot로 생성) vi /etc/exports 코드의 마지막에 위의 내용을 추가해 줍니다. [폴더명] [주소] (rw,no_root_squash,no_all_squash,async) 폴더 : nfs를 사용할 폴더. (/nfsroot.. 2011. 10. 26.
[s5pc100] tftp로 zImage 부팅 및 적재(올리기). 그림 설명. [s5pc100] tftp로 zImage 부팅 및 적재(올리기). 그림 설명. [s5pc100] tftp로 zImage 부팅 및 적재(올리기). 그림 설명. [s5pc100] tftp로 zImage 부팅 및 적재(올리기). 그림 설명. tftpd-hpa 가 아닌 그냥 tftp 설치 입니다. 지금 설치하는 것은 10.10부터 보안상의 이유로 업로드를 막았다고 합니다. 10.10 이상의 이용자는 아래 링크에서 tftp-hpa 설치를 따라 주세요. [Ubuntu]tftp-hpa 설치 및 설정하기 그림 설명. 길고 오타가 나기 쉬운 명령들을 위해 파일을 첨부 합니다. apt-get install tftpd tftp (첫번째 tftp 에 d 가 붙어있습니다. 빼먹지 마세요.) 일반적으로 install을 하게 되면.. 2011. 10. 26.
[s5pc100] minicom 설치 및 설정하기. 그림설명 virtualBox 시리얼 설정. 설정 선택. 직렬포트 -> 포트 1 -> 직렬포트 체크, 포트번호 1. 모드 호스트, 파일경로 COM1 으로 설정. apt-get install minicom (미니콤 설치) minicom -s (미니콤 설정) Serial port setup 선택 변경을 원하는 곳의 좌측 알파벳을 눌러 줍니다. Serial Device 변경을 위해서 A 를 눌렀습니다. (대소문자 상관 X) 그럼 커서가 이동하고 원하는 형태로 변경 후 Enter를 누르시면 변경 됩니다. Esc를 누르면 취소가 되고 다시 선택하게 됩니다. MAC air 또는 시리얼 포트가 없는 컴퓨터 및 노트북. Serial Device가 /dev/tty8 에서 ttyUSB0로 변경 (시리얼 포트가 없어서 USB를 시리얼.. 2011. 10. 26.
[s5pc100] 커널 컴파일 하기. 그림 설명. kernel-2.6.29-aesop-RTM10-20110309 컴파일 하기 zImage 만들기. 우선. root 권한 기준으로 설명을 하기 때문에 sudo su - 입력 후 현재 계정의 비밀번호를 입력. 명령 프롬프트에 $ 끝나던 것이 # 으로 바뀐 것을 확인 할 수 있습니다. 일반 계정에서 root 계정으로 전환 입니다. 전환하지 않으면 실행되지 않는 명령들이 있으며, 그 명령어들마다 sudo 를 붙여줘야 하기 때문에 root 권한으로 작업. 경로가 상당히 깁니다. 2~3글자 정도 입력 후 Tab 키를 눌러주면 자동으로 완성됩니다. 중복된 이름이 있는 경우 그 이름들을 모두 출력해 주며, 중복되지 않는 고유한 글씨까지 입력 후 Tab 키를 눌러주면 완성 됩니다. 윈도우와 우분투의 공유폴더를 생성해서 공.. 2011. 10. 25.
[s5pc100] System Call 추가하기. 그림 설명. [s5pc100] System Call 추가하기. 그림 설명. [can-c100] System Call 추가하기. 그림 설명. [kernel-2.6.29-aesop-RTM10] System Call 추가하기. 그림 설명. kernel-2.6.29-aesop-RTM10 의 커널에 system call을 추가해 보자. 경로가 상당히 깁니다. 2~3글자 정도 입력 후 Tab 키를 눌러주면 자동으로 완성됩니다. 중복된 이름이 있는 경우 그 이름들을 모두 출력해 주며, 중복되지 않는 고유한 글씨까지 입력 후 Tab 키를 눌러주면 완성 됩니다. unistd.h 파일을 열어서 System Call을 추가한다. vi /android/kernel/kernel-2.6.29-aesop-RTM10/arch/arm/includ.. 2011. 10. 25.
S5PC100 부트로더, 커널, 파일시스템.(dnw, tftp, nfs,) S5PC100, can-c100 S5PC100, can-c100 S5PC100, can-c100 u-boot.bin kernel-2.6.29-aesop-RTM10-20110309.tar.gz can-c100-rootfs-android-20110325.tar.gz 우선. 보드 뒷면 유리판을 보면 하단분에 작은 네모 모양의 구멍이 있습니다. 자세히 들여다 보면 4개의 흰색 핀이 있는데, 이것을 전부 반대로 돌려주셔야 합니다. dnw 처음 실행한 화면입니다. 제목표시줄을 보면 com,usb 가 x 표시인 것을 볼 수 있습니다. ADDR은 아마 처음엔 다른 숫자가 적혀 있을 겁니다. 변경할 것이니 무시하세요. Configuration -> option 선택 115200, com3 선택. USB Port에 0x2.. 2011. 8. 9.