'Embedded'에 해당되는 글 19건

  1. 2011.07.29 [stm32f103cb] ucos-ii 포팅 사전 준비
  2. 2011.04.15 타켓 보드에서 이미지 표시 하기 (문제해결)
  3. 2011.03.31 [qt4] background color 설정하기(embedded)
  4. 2011.03.22 [android][error] can't find any keycharmaps & can't open keycharmaps file
  5. 2011.03.21 [android] HOME key 살리기
  6. 2011.03.21 [android,cupcake] 안드로이드용 파일 시스템 구축 스크립트
  7. 2011.03.15 [s3c6410] SDL + tslib 환경 설정값
  8. 2011.03.14 [s3c6410] busybox의 telnetd 을 사용해 보자
  9. 2011.03.14 [S3C6410,Android] tslib 포팅 for Android

[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

타켓 보드에서 이미지 표시 하기 (문제해결)

타켓보드에서 jpg등과 같은 이미지를 표시하기 위해서는 타켓보드용으로 크로스 컴파일 된 plugin들이 필요하다.(libjpeg, libpng등을 qt4 내장으로 툴체인을 만들었을 경우)
이런 경우에는 plugin에서 필요한 라이브러리들을 타켓보드에 동일한 위치에 복사해서 넣어주도록 한다.

'develop > qt4' 카테고리의 다른 글

[qt4] label 배경색 입히기  (0) 2011.05.02
[qt4] sql next() 주의  (0) 2011.05.02
[qt4] widget background color 지정  (0) 2011.04.05
[qt4] qt4.7.2 cross compile for S3C6410 + Phonon  (0) 2011.03.31
[qt4] background color 설정하기(embedded)  (0) 2011.03.31

[qt4] background color 설정하기(embedded)

위에 표시한(붉은 사각형) 부분은 widget을 제외한 부분으로 설정없이 타켓보드에서 프로그램을 띄우게 되면 자동으로 녹색으로 표시하게 되어 있다.
이 부분을 변경하고 싶으면, main()함수에서 아래와 같이 정의 하면 된다.

QWSServer::setBackground(Qt::black);

[android][error] can't find any keycharmaps & can't open keycharmaps file

- 위 2개 에러는 퍼미션 때문에 생기는 에러
- /system/usr/keychars 안에 있는 모든 파일에 644퍼미션을 주면 해결 된다.

[android] HOME key 살리기

1. 안드로이드 플랫폼 포팅 시.

작업파일 : development/apps/SdkSetup/Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := foo
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := SdkSetup
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)

파일 내용을 위와 같이 수정해 주면 
out/target/product/generic/system/app/SdkSetup.apk 파일이 생긴다.
이 파일이 설치되면 keyquard가 동작하게 되면 homekey도 작동하게 된다.

2. sqlite db 파일 수정

작업파일 : data/data/com.android.providers.settings/databases/settings.db
table : secure
column : name컬럼에 "device_provisioned" 의 값을 1로 설정해 주면 된다.

sql :
insert into secure(name,value) values('device_provisioned',1);
or
update secure set value=0 when name='device_provisioned';

 

[android,cupcake] 안드로이드용 파일 시스템 구축 스크립트

아직 작업 중....


-- sd 카드용 디렉토리 생성 스크립트 

#!/bin/sh 
ARGS=1
TARGET_DIR=$1
PWD=`pwd`

if [ $# -ne "$ARGS" ]
then 
    echo "USAGE : `basename $0` [TARGET DIRECTORY]"
    echo $1
    exit 65
fi


cd $TARGET_DIR
mkdir sdcard cache sqlite_stmt_journals
cd $PWD 


-- junk battery 용 스크립트

#!/bin/sh


ARGS=1

TARGET_DIR=$1

PWD=`pwd`



if [ $# -ne "$ARGS" ]

then

    echo "USAGE : `basename $0` [TARGET DIRECTORY]"

    exit 65

fi


make_directory_file() {

    mkdir -p junk_battery/class/power_supply/ac 

    cd junk_battery/class/power_supply 

    mkdir usb battery

#    touch ac/online usb/online battery/stats battery/health battery/present battery/capacity battery/batt_vol battery/batt_temp battery/technology

    echo "100" > ac/online 

    echo "100" > usb/online 

    echo "100" > battery/stats 

    echo "100" > battery/health 

    echo "100" > battery/present 

    echo "100" > battery/capacity 

    echo "100" > battery/batt_vol 

    echo "100" > battery/batt_temp 

    echo "100" > battery/technology

}




cd $TARGET_DIR 

make_directory_file

cd $PWD


[s3c6410] SDL + tslib 환경 설정값

SDL 과 tslib을 같이 사용하기 위해서는 환경 설정값이 필요하다.
하나라도 빠지게 되면 sdl상에서의 마우스 움직임이 틀려진다.

- TSLIB
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0

- SDL
export SDL_MOUSEDRV=TSLIB
export SDL_MOUSEDEV=/dev/input/event1

* tslib의 calibration 데이터 file : /etc/pointercal 
* 위 데이터는 ts_calibration을 해주면 생성되게 된다.

[s3c6410] busybox의 telnetd 을 사용해 보자

  • 버젼 : 1.18.0
  • 사전 확인 사항 :
    • 커널 옵션에서 Device Drivers -> Character devices -> Unix98 PTY support 항목이 선택 되었는지 확인(Support multiple instances of devpts 마찬가지)
    • busybox 설정에서 확인
      • CONFIG_LOGIN=y
      • CONFIG_FEATURE_SUID=y
      • CONFIG_TELNETD=y 
  • 타겟보드 부팅 후 작업
    • mount -t devpts devpts /dev/pts
      • mount 되었는지 확인해 보자
      • 자동으로 마운트 되게 하려면 /etc/fstab에 아래와 같이 추가해 주자
        • devpts      /dev/pts      devpts     default      0   0
    • ptyp0~9번까지 생성
      • mknod /dev/ptyp0 c 2 0 
      • ~
      • mknod /dev/ptyp9 c 2 9
    • /etc/nsswitch.conf 파일 내용이 아래와 같은지 확인.(틀리면 수정)
      • passwd:        files
      • group:           files
      • shadow:        files
    • telnet에 접속할 수 있는 사용자를 추가 하자.
      • adduser -h /home/user user
      • 사용자가 추가 되었는지 /etc/passwd, /etc/shadow 을 확인하자.
      • 램디스크인 상태라면 다음 재부팅 할 때 사용자에 대한 정보는 초기화 될 것이다. 이걸 해결하려면 좀 전에 추가한 사용자에 대한 정보를 /etc/passwd, /etc/shadow에서 복사해서 호스트에서 구축하는 램디스크에 동일한 파일에 동일한 내용으로 추가해 주면 된다.
      • /etc/services, /etc/protocols, /etc/securetty 파일이 존재 하는지 확인, 없으면 호스트에 있는 파일들을 타겟에 넣어준다.
      • /etc/securetty 파일 안에 아래와 같은 내용을 넣어준다.
        • ttyS0
        • ttyS1
        • ttyS2
        • ttyS3
        • tty1
        • tty2
        • tty3
        • tty4
        • pts/0
        • pts/1
        • pts/2
        • pts/3
        • pts/4
        • pts/5
        • pts/6
        • pts/7
        • pts/8
        • pts/9

[S3C6410,Android] tslib 포팅 for Android

안드로이드 상에서 tslib을 이용한 calibration

첨부된 파일 참조
prev 1 2 next