임베디드2011. 6. 28. 10:59

 CP15 용어

Term

Abbreviation

Description

Unpredictable

UNP

read했을 때 돌아오는 data가 unpredictable함을 나타냄 

write했을 때, 이로 인해 발생할 수 있는 behavior가 unpredictable함을 나타냄 

Undefined

UND

cp15에 접근하는 명렁어 중, UND라고 표시된 명령어들은 undefined instruction trap에 걸림. 

Should Be Zero

SBZ

write할 때, 모든 bit field가 0 이여야 함. 

Should Be One

SBO

write할 때, 모든 bit field가 1 이여야 함.







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

SiP vs SoC  (0) 2021.04.14
ARM 프로세스 모드 - 시스템 모드 -  (0) 2011.06.11
cache thrashing  (0) 2011.04.30
Posted by code cat
리눅스2011. 6. 27. 17:25

VMware에서 리눅스를 깐 경우, 가끔 컴퓨터 크래쉬로 인해 리눅스로 resume이 안될 때가 있다.(오늘 내가 그랬다. T_T)
 
이럴땐, 우선 vmware에서 추천하는데로 chkdsk로 파일 불량섹터를 검사해보고, (링크 참조)

http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=1004003&sliceId=1&docTypeID=DT_KB_1_1&dialogID=13876493&stateId=1%200%2013880251

이래도 안되면 virtual machine이 있는 디렉토리(보통 다큐먼트 쪽 폴더에 있다. my virtual machine 디렉토리를 체크하길 바란다.)에서 .vmem이라는 파일이 있을 것이다.  이 파일을 지우면, 비록 suspended 된 시점으로 resume은 안되지만, 처음부터(power-on한거처럼) 작동 할 것이다.

문제해결!
 

'리눅스' 카테고리의 다른 글

Linux: umask  (0) 2012.01.03
JBD error message "barrier-based sync failed"  (0) 2011.08.17
EXT4 파일 시스템 굽기  (0) 2011.08.02
[Ubuntu] Ubuntu 에서 make menuconfig 안될때,  (0) 2011.04.22
/opt, 리눅스 패키지 설치  (0) 2011.04.20
Posted by code cat
책/IT2011. 6. 27. 13:48



어머 이건 질러야돼!

' > IT' 카테고리의 다른 글

네트워크 속의 유령, 케빈 미트닉  (0) 2013.12.03
GoF 디자인 패턴! 이렇게 활용한다.  (0) 2013.03.24
Posted by code cat
./configure 2>&1 | tee out.txt
configure 결과를 화면에 뿌리고 텍스트 파일에 저장한다

Read from an input and write to a standard output and file.

Syntax

tee [OPTION]... [FILE]...

-a
--append Append to the given FILEs, do not overwrite.
-i ignore interrupt signals.
--help Display the help screen.
--version Display the version.
Examples

ls *.txt | wc -l | tee /dev/tty count.txt

In the above example the ls command would list all .txt files in the current directory, take a word count (wc) by the amount of lines (-l) and the output displayed to the /dev/tty (terminal) will be sent to the count.txt.

Note: Because the above example did not take advantage of the -a or append option if the count.txt file already existed it would have been overwritten.

Related commands

cat


iPhone 에서 작성된 글입니다.
Posted by code cat
임베디드2011. 6. 11. 01:47

프로세서 익셉션이 일어 났을때, 현재 PC값은 LR에 복사가 되고, CPSR은 SPSR로 복사가 됩니다.  그 후에 CPSR은 어떤 익셉션이냐에 따라서 변할 것이고, PC도 익셉션 핸들러를 돌리기 위해 익셉션에 맞게 정의된 주소로 바뀝니다. 

 

그후, ARM의 서브루틴 콜(BL)은 서브루틴으로 뛰기 전에 r14에 리턴할 주소를, PC값을 바꾸기 전에 복사해놓고, 서브루틴에서 돌아올때는 PC에 r14값을 넘겨줍니다.  그러므로 지금 일어난 익셉션을 핸들하고 있는  현 ARM 모드는 같은 종류의 익셉션이 일어낳지 않도록 해야 합니다.(안 그러면 서브루틴 리턴 주소가 익셉션 리턴 주소로 덮어씌어질테니까요)

 

ARMv4이전까지는 익셉션 코드에서 서브루틴콜을 피하거나 권한모드에서 유저모드로 들어가서 처리했는데, 전자는 너무 제한적이고, 후자는 태스크가 필요한 권한을 가지지 못할 수도 있다는 문제가 있습니다.  그래서 ARM v4 이후에서는 시스템 모드라는 걸 지원해서 이러한 문제를 해결했습니다.  시스템 모드는, 유저모드에 있는 레지스터를 공유할 수 있는 권한모드이기 때문입니다.

 

비슷한 얘기지만 인터럽트 핸들러를 재진입시에도 시스템 모드를 사용해서 문제를 해결 할 수 있습니다.  ARV v4이전까지는 Supervisor 모드로 들어가야 했습니다.

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

SiP vs SoC  (0) 2021.04.14
ARM cp15 register에 관련된 용어들  (0) 2011.06.28
cache thrashing  (0) 2011.04.30
Posted by code cat
int is_little_endian()
{
    long val = 1;
    char *c = (char *) &val;
    return (*c == 1);
}

'리눅스 > 스크립트/유틸' 카테고리의 다른 글

dd (주로 빈 파일 만들기, loopback 마운팅 할 때 쓰임)  (0) 2011.08.02
tee 커맨드  (0) 2011.06.19
busybox cross-compile  (0) 2011.06.01
mount 옵션비교 atime, noatime, relatime  (0) 2011.06.01
xargs 사용법  (0) 2011.04.24
Posted by code cat
애플리케이션용 자바 프로그래밍이나 일반 자바 프로그래밍 관련은 다른 방법으로 컴파일 가능하다. 그러나..

안드로이드 프레임워크단이고, ant 아닌 android용 make라면 다음과 같은 방법으로 가능하다.

자바 단에서

public static final boolean TARGET_PRODUCT = flase;


로 정의하고,

 분기컴파일이 필요한 부분에 가서,

if (TARGET_PRODUCT) {

// 코드 내용, 이 부분은 false로 남아있을 경우, 컴파일 할때 사라짐.

}



그리고 해당 make 파일에서 해당 product에 따라 간단히 awk  나 sed로 저기 fasle 부분만 바꿔주는 경우로 하면 된다.  자바도 컴파일할때 최적화를 하기에 저렇게 절대로 실행이 안되는 부분(상기 TARGET_PRODUCT이 적용 안되는 경우) 컴파일 할 때 생략한다.

/* 커맨트 추가
 원래는 안드로이드에서 쓰는 property_get() (system/core/include/cutils/properties.h 에 정의)를 product에 맞는 프로퍼티를 설정해 놓고 거기에 맞게 쓸까 했는데, 이러면 전처리기라기보단 그냥 분기실행 같기도 하고, 프로퍼티를 저런 식으로 써도 되는지 몰라서 안했습니다.

 이 방법에 문제라면 product종류가 2개 이상이면 조금 복잡해지는거 같습니다.  안드로이드가 아닌 그냥 자바라면 디펜던시 인젝션 하는 방법으로 하면 간단히 해결 되는 걸로 알고 있습니다.(이 부분은 해당업무가 바뀌면 올리겠습니다 ㅎㅎ)
*/

'안드로이드 > 프레임워크' 카테고리의 다른 글

Bionic libc (2)  (0) 2012.11.08
Bionic libc  (0) 2012.10.30
안드로이드 init.rc (oom_adj값)  (0) 2012.09.27
Dalvik Virtual Machine 와 odex  (0) 2012.08.13
안드로이드 바인더 ipc  (0) 2011.10.23
Posted by code cat
설정
make menuconfig 실행
컴파일
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
(Makefile 안에 CROSS_COMPILE 수정해도 된다)
인스톨
make CONFIG_PREFIX=target_directory ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- install

 

(static 컴파일)make CONFIG_PREFIX=target_directory ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-  CFLAGS=--static LDFLAGS=--static  install

 


확인
file busybox 로 크로스컴파일 잘 되었나 확인
 busybox: ELF 32-bit LSB executable, ARM ...
 
Posted by code cat
atime, noatime, relatime는 ext2, ext3와 같은 파일 시스템을 위한 마운트 옵션이다.  Debian 계열에선 default로 atime으로 설정되어 있다.

 참고로 안드로이드에서는 system과 data 이미지를 yaffs2로 마운트 할 때 noatime 옵션을 쓴다.


atime
이 옵션을 설정할 경우, 리눅스는 특정 파일이 마지막으로 엑세스되었던 때를 기록한다. sysadmins이나 메일 프로그램같은 프로그램에서 유용하게 쓰일 수 있다.  하지만 항상 엑세스 할때마다 write을 해주어야 하므로(기록을 해야 하므로), 퍼포먼스 이슈가 있다.

noatime
이 옵션을 사용시, atime처럼 파일이 엑세스될때마다 기록하는 것과 달리 파일이 변하거나 쓰기 오퍼레이션시에만 디스크에 기록된다. 비록 시스템 퍼포먼스를 크게 이끌어 올릴 수 있으나, 간혹 특정 프로그램이 제대로 동작하지 않는 경우가 있다.

relatime
이 옵션을 사용한 파일 시스템은 파일에 대한 엑세스 타임이 파일이 변환된 타임보다 오래 됬을경우에만 업데이트 한다. atime과 noatime 의 중간이다.

결론: relatime 을 활용하자.

'리눅스 > 스크립트/유틸' 카테고리의 다른 글

dd (주로 빈 파일 만들기, loopback 마운팅 할 때 쓰임)  (0) 2011.08.02
tee 커맨드  (0) 2011.06.19
엔디안 처리하는 함수  (0) 2011.06.06
busybox cross-compile  (0) 2011.06.01
xargs 사용법  (0) 2011.04.24
Posted by code cat
카테고리 없음2011. 5. 30. 21:37


이러다 정리 언제 다 하지...
Posted by code cat