'porting'에 해당되는 글 9건

  1. 2011.07.29 [stm32f103cb] usos-ii 소스 디렉토리/파일 구조
  2. 2011.07.29 [stm32f103cb] ucos-ii 포팅 사전 준비
  3. 2011.06.23 [s3c6410] lame-3.98.4 cross compile
  4. 2011.06.23 [s3c6410] xvidcore-1.3.2 cross compile
  5. 2011.06.15 [s3c641] libogg cross compile
  6. 2011.06.10 [s3c6410, qt4] glib cross compile
  7. 2011.06.09 [s3c6410] glib-2.2 porting 중 에러 대처
  8. 2011.06.09 [s3c6410] ffmpeg porting
  9. 2011.06.09 [s3c6410] x264 porting

[stm32f103cb] usos-ii 소스 디렉토리/파일 구조

  • 모든 port는 하드디스크의 /software/ucos-ii 디렉토리 아래에 존재해야 한다.(하드드라이브 위치는 상관없다.)
  • 프로세서의 port 코드는 다음의 2~3개 파일로만 구성해야 한다.
    • OS_CPU.H
    • OS_CPU_C.C
      • 인라인 어셈블리를 지원하는 컴파일러인 경우 여기서 필요한 어셈블리 코드를 기술한다.
    • OS_CPU_A.ASM ( 필요한 경우 )
      • 인라인 어셈블리를 지원하는 컴파일러인 경우에는 필요없을 수도 있다.
  • port 소스가 들어있는 디렉토리 이름은 해당 소스가 어떤 프로세스인지를 나타낸다.
  • ucos-ii 의 port소스들은 프로세서 별로 완전히 다른 소스코드지만 같은 이름으로 다른 디렉토리에 존재할 수 있다.(헷갈리지 말자!)
  • 또한 디렉토리들은 컴파일러에 따라서 구분해야 한다.
    • 대충 아래와 같은 형태가 될꺼다.
    • /SOFTWARE/uCOS-II/x86/PARADIGM
      • x86환경에서 Paradigm 컴파일러을 사용하는 port 소스 디렉토리
    • /SOFTWARE/uCOS-II/x86/BC45
      • x86환경에서 borland C V4.5 컴파일러를 사용하는 port 소스 디렉토리



'임베디드 > uc/os-ii' 카테고리의 다른 글

[stm32f103cb] ucos-ii 포팅 사전 준비  (0) 2011.07.29

[stm32f103cb] ucos-ii 포팅 사전 준비

CPU : STM32F103CB

STMicroelectronics 사의 flash loader을 이용해서 rom에 바이너리 쓰기 한다.(사용버젼은 v1.3)

포팅시 ucos 사이트에서 구한 port 소스를 이용한다.
여기서 포팅시 각 보드 특성에 맞춰서 수정해야 할 파일들은 아래와 같다.
OS_CPU.H
OS_CPU_A.ASM
OS_CPU_C.C

위 3파일에 있는 데이터 타입이나 함수, 또는 어셈블리 코드를 보드에 맞게 수정해야 한다.


포팅 작업을 하는데 필요한 컴파일러가 필요하다.
필요조건은
  • 재진입이 가능한 코드를 생성 할 수 있어야 할 것
  • 어셈블리 프로그래밍을 지원할 것
  • C 코드 수준에서 인터럽트 enable/disable 지원 할 것
보통 이정도 기능은 지원해야 한다.(인라인 어셈블리 기능을 지원하면 더 좋고...)


'임베디드 > uc/os-ii' 카테고리의 다른 글

[stm32f103cb] usos-ii 소스 디렉토리/파일 구조  (0) 2011.07.29

[s3c6410] lame-3.98.4 cross compile

#!/bin/sh


./configure \
    --prefix="/app" \
    --host=arm-generic-linux-gnueabi

[s3c6410] xvidcore-1.3.2 cross compile

cd build/generic
create mybuild.sh script
#!/bin/sh

./configure \
    --prefix="/app" \
    --host=arm-generic-linux-gnueabi

[s3c641] libogg cross compile

./configure --prefix=/usr/arm-generic-linux-gnueabi --host=arm-generic-linux-gnueabi
make && make install

[s3c6410, qt4] glib cross compile

glib은 libffi 라이브러리를 요구한다. 다운로드

arm-linux.cache 파일 작성

내용은 아래와 같이 한다.

glib_cv_long_long_format=ll
glib_cv_stack_grows=no
glib_cv_has__inline=yes
glib_cv_has__inline__=yes
glib_cv_uscore=no
ac_cv_func_posix_getpwuid_r=yes
ac_cv_func_posix_getgrgid_r=yes
glib_cv_use_pid_surrogate=yes

glib-2.22.0 configure options

./configure --prefix=/usr/arm-generic-linux-gnueabi --target=arm-generic-linux-gnueabi --cache-file=arm-linux.cache --with-threads=posix --host=arm-generic-linux-gnueabi

make

make install


glib-2.26.1 configure options

PKG_CONFIG="/usr/arm-generic-linux-gnueabi/bin/pkg-config" ./configure --prefix=$PWD/_install --target=arm-generic-linux-gnueabi --cache-file=arm-linux.cache --with-threads=posix --host=arm-generic-linux-gnueabi


* SSIZE_MAX error가 발생하면 해당 파일을 열어서 아래와 같이 추가한다.

#ifndef SSIZE_MAX

#define SSIZE_MAX        LONG_MAX

#endif

'임베디드 > S3C6410' 카테고리의 다른 글

[s3c641] libogg cross compile  (0) 2011.06.15
[s3c6410] gst-plugins-base-0.10.22 cross compile  (0) 2011.06.14
[s3c6410] glib-2.2 porting 중 에러 대처  (0) 2011.06.09
[s3c6410] ffmpeg porting  (0) 2011.06.09
[s3c6410] x264 porting  (0) 2011.06.09

[s3c6410] glib-2.2 porting 중 에러 대처

SSIZE_MAX 에러 일 경우, 에러가 나온 해당 파일을 찾아서 아래와 같은 내용을 첨부한다.
#ifndef SSIZE_MAX
# define SSIZE_MAX LONG_MAX
#endif


'임베디드 > S3C6410' 카테고리의 다른 글

[s3c6410] gst-plugins-base-0.10.22 cross compile  (0) 2011.06.14
[s3c6410, qt4] glib cross compile  (0) 2011.06.10
[s3c6410] ffmpeg porting  (0) 2011.06.09
[s3c6410] x264 porting  (0) 2011.06.09
[s3c6410] usb disk automount rules  (0) 2011.06.03

[s3c6410] ffmpeg porting

#./configure --enable-cross-compile --cross-prefix=arm-generic-linux-gnueabi- --enable-gpl --enable-swscale #--disable-static --enable-shared --prefix=/usr/arm-generic-linux-gnueabi --disable-mmx --disable-armv5te #--disable-iwmmxt --arch=armv4l --target-os=linux --enable-libx264  --enable-pthreads

./configure --target-os=linux --arch=armv5te --enable-cross-compile --cc=arm-generic-linux-gnueabi-gcc --cross-prefix=arm-generic-linux-gnueabi- --enable-static --disable-shared --enable-libx264 --enable-gpl --disable-asm --disable-yasm --prefix=/usr/arm-generic-linux-gnueabi --disable-amd3dnow --disable-amd3dnowext --disable-mmx --disable-mmx2 --disable-sse --disable-ssse3 --enable-pthreads

make && make install
#!/bin/sh
#    --cross-prefix="/usr/arm-generic-linux-gnueabi/bin/arm-generic-linux-gnueabi-" \
#    --nm=arm-generic-linux-gnueabi-nm \
#    --ar=arm-generic-linux-gnueabi-ar \
#    --as=arm-generic-linux-gnueabi-as \
#    --ld=arm-generic-linux-gnueabi-ld \

./configure \
    --prefix="/app" \
    --target-os=linux \
    --enable-cross-compile \
    --arch=armv5te \
    --cc=arm-generic-linux-gnueabi-gcc \
    --cross-prefix=arm-generic-linux-gnueabi- \
    --enable-static \
    --disable-shared \
    --enable-libx264 \
    --enable-gpl \
    --disable-asm \
    --disable-yasm \
    --disable-amd3dnow \
    --disable-amd3dnowext \
    --disable-mmx \
    --disable-mmx2 \
    --disable-sse \
    --disable-ssse3 \
    --enable-pthreads \
    --enable-libmp3lame \
    --enable-libxvid \
    --enable-libvorbis \
    --enable-postproc \
    --extra-cflags="-I/app/include -I/usr/arm-generic-linux-gnueabi/include" \
    --extra-libs="-L/app/lib -L/usr/arm-generic-linux-gnueabi/lib"

'임베디드 > S3C6410' 카테고리의 다른 글

[s3c6410, qt4] glib cross compile  (0) 2011.06.10
[s3c6410] glib-2.2 porting 중 에러 대처  (0) 2011.06.09
[s3c6410] x264 porting  (0) 2011.06.09
[s3c6410] usb disk automount rules  (0) 2011.06.03
[s3c6410] mplayer 포팅  (0) 2011.04.28

[s3c6410] x264 porting

CC=arm-generic-linux-gnueabi-gcc ./configure --prefix=/usr/arm-generic-linux-gnueabi --disable-gpac --enable-static  --enable-strip --cross-prefix=arm-generic-linux-gnueabi- --host=arm-generic-linux-gnueabi
make && make install

'임베디드 > S3C6410' 카테고리의 다른 글

[s3c6410] glib-2.2 porting 중 에러 대처  (0) 2011.06.09
[s3c6410] ffmpeg porting  (0) 2011.06.09
[s3c6410] usb disk automount rules  (0) 2011.06.03
[s3c6410] mplayer 포팅  (0) 2011.04.28
[s3c6410] Keypad device driver 포팅  (0) 2011.04.27
prev 1 next