OS/Raspberry Pi2014. 1. 1. 23:00

라즈베리 파이의 부팅 순서는 다음과 같다.

1. 보드에 전원이 들어오고 GPU가 활성화된다.

2. SoC 내 ROM에 있는 첫번째 부트로더(Firmware)를 읽어들인다.

3. 첫번째 부트로더가 SD카드에 있는 두번째 부트로더(bootcode.bin)을 호출한다.

4. 두번째 부트로더가 SD카드에 있는 config.txt를 읽고 실행한다.

4. 두번째 부트로더가 세번째 부트로더(start.elf)를 호출 및 실행하여, ARM Core를 활성화한다.

6. ARM Core가 활성화되면 네번째 부트로더(kernel.img)를 호출, 실행한다.


그래서 Raspberry Pi를 구동하는데 필요한 최소 파일은 다음 3개이다.

bootcode.bin

start.elf

kernel.img


이 중 start.elf는 두 가지 변형이 있는데,

start_cd.elf는 기존 start.elf의 Cut-Down 버전이고,

start_x.elf는 start.elf의 테스트 버전이다.


더 자세한 내용은 다음 링크 참조(영문)

http://thekandyancode.wordpress.com/2013/09/21/how-the-raspberry-pi-boots-up/


관련 소스

https://github.com/raspberrypi/noobs

https://github.com/raspberrypi/firmware


Posted by 마이클
OS2014. 1. 1. 21:37

Mac에서 ARM 크로스 플랫폼 개발환경 구축하는 법에 대해서 설명하고자 한다.

기본적으로 Mac에서 Xcode를 설치하면 ARM 크로스 플랫폼 개발환경이 생성되지만,

(/opt/local/bin/폴더에 arm-none-eabi-gcc 파일이 있으면 된다. - 숨김 폴더이므로 Finder에서 Cmd + Shift + G로 이동)

제대로 작동하지 않을 경우에 새로운 툴을 설치하는 방법이다.

개발환경을 구축하는 방법은 MacPorts를 이용한 방법과 Homebrew를 이용한 방법의 두 가지가 있으며

MacPorts와 Homebrew 모두 리눅스에서 이용하는 apt-get과 같은 역할을 하는 프로그램이다.


1. MacPorts를 이용한 방법

1.1. Xcode 설치 및 실행

App Store에서 Xcode(https://itunes.apple.com/kr/app/xcode/id497799835?mt=12)를 다운로드를 받는다.

다운로드가 끝나면 Xcode를 한 번 실행하여, Xcode 라이센스 동의 및 기본 설정을 완료한다.
(또는 터미널에서 sudo xcodebuild -license를 입력하여 라이센스 동의를 해도 된다.)


1.2. MacPorts 설치

MacPorts 사이트(http://www.macports.org/)로 이동하여 자신의 Mac OS 버전에 맞는 MacPorts를 다운로드 받는다.

사이트 좌측 Getting Started > Installing MacPorts 메뉴로 이동, Quickstart 항목에서 자신의 운영체제 버전을 클릭하면 된다.


1.3. arm-none-eabi-gcc 설치

터미널에서 MacPorts를 통해 arm-none-eabi-gcc를 설치한다.

sudo port install arm-none-eabi-gcc


2. Homebrew를 이용한 방법

2.1. Xcode 설치

App Store에서 Xcode(https://itunes.apple.com/kr/app/xcode/id497799835?mt=12)를 다운로드를 받는다.

다운로드가 끝나면 Xcode를 한 번 실행하여, Xcode 라이센스 동의 및 기본 설정을 완료한다.


2.2. Homebrew 설치

터미널을 열고 아래 명령을 입력하여 Homebrew(http://homebrew.sh)를 설치한다.

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"


2.3. 의존성 항목 설치

터미널에서 Homebrew를 통해 의존성 항목들을 먼저 설치한다.

brew install mpfr gmp libmpc libelf texinfo


2.4. arm-eabi-toolchain 다운로드 및 컴파일

터미널에서 아래 명령어를 입력하여 툴을 다운로드하고 컴파일한다.

git clone https://github.com/jsnyder/arm-eabi-toolchain

cd arm-eabi-toolchain

make install-cross

생성된 툴은 홈폴더(~) 아래 arm-cs-tools 폴더에 있다.


관련 링크

http://elinux.org/RPi_Kernel_Compilation#Cross_compiling_from_OSX(영문)

Posted by 마이클
WebApp/JavaScript2012. 2. 16. 01:35
아이폰 웹 어플리케이션의 경우 UIWebView를 기반으로 하기 때문에,
일반 네이티브 어플리케이션과 달리 스크롤이 되는데,
이를 방지하기 위해서는 다음의 코드를 입력하면 된다.

<script type='text/javascript'>
document.ontouchmove = function(e){ e.preventDefault(); } 
</script> 


위의 코드를 <head></head>사이에 넣으면 더이상 웹 어플리케이션의 스크롤이 이루어지지 않는다.

'WebApp > JavaScript' 카테고리의 다른 글

Javascript 페이지 이동(리다이렉트Redirect)  (0) 2010.08.13
Posted by 마이클