'develop'에 해당되는 글 84건

  1. 2006.06.29 Arm Assemble
  2. 2006.06.28 API & SDK
  3. 2006.06.23 u-boot 상에서 irq로 led테스트
  4. 2006.06.23 에라이 씨발...

Arm Assemble

레지스터 r0~r15까지 16개 사용 가능

Special Purpose General Register==========
    유저가 프로그램 할 때 레지스터 지정을 위해 사용할 수 있는 키워드

    r15 (Program Counter, PC)

    r13 (Stack Pointer, SP)
          : 스택을 위한 명령어가 따로 없다.
             push, pop의 기능을 일반 데이터 전송 명령을 통해 해결

    r14 (Link Register, lr)
          : 링크 레지스터,
             BL (Branch with Link)을 수행하면, pc(r15)값을 스택이 아니라, lr(r14)에 넣고 분기 번지를
             pc(r15)에 넣어 분기, 스택 사용 않함
             복귀할 때는 "mov pc, lr"이라는 데이터 전송명령으로 복귀
             * 한번의 call만 하는 경우라면, 스택을 사용하지 않기 때문에 속도가 빠르다.


Status Register ==========
    PSR이라고 부른다. 일반적으로는 CPSR(Ccurrent Processor Status Register)이라고 한다.
    32비트의 레지스터가 6개 있다.한번에 모두 사용할 수는 없다.
    PSR은 flag bits, control bits로 나뉜다.
   
    Flag Bits :
          어떤 인스트럭션의 결과을 나타내는 부분 (4비트)
                1) N (Negative/Less than flag)
                         : 연산의 결과가 마이너스 일 때 세트
                2) Z (Zero flag)
                         : 연산의 결과가 0이 일 때 세트
                3) C (Carry/Borrow/Extend flag)
                         : 자리올림이나, 내림이 발생, 그리고 shift연산등에서 세트
                4) V (Overflow flag)
                         : 연산의 결과가 오버플로우인 경우에 세트
    Control Bits :
          인터럽트을 제어하거나, CPU 동작모드를 설정하거나 확인 할 수 있는 bit들
                1) IRQ / FIQ
                         : IRQ, FIQ를 금지 시킬 수 있는 플래그
                2) Mode Bits
                         : M0 ~ M4 의 비트들은 CPU의 6개의 동작 상태를 나타낸다.




powered by performancing firefox




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

프로세스 찾아서 지우고 실행하기  (0) 2006.08.21
데몬 프로그램 만들기  (0) 2006.08.21
API & SDK  (0) 2006.06.28
u-boot 상에서 irq로 led테스트  (0) 2006.06.23
에라이 씨발...  (0) 2006.06.23

API & SDK

API (Application Programming Interface)
    OS에서 제공하는 프로그래밍을 위한 함수들...
    보통 C의 함수 형태로 구성
    ==> 운영체제가 응용 프로그램을 위해 제공하는 함수의 집합

SDK(Software Development Kit)
    API와 비슷한 말...
    원래는 API를 사용하여 프로그램을 개발하는 개발 툴 킷이었으나, 지금은 의미가 전용
    되어 API와 거의 같은 뜻으로 쓰인다.

DLL(Dynamic Link Library)
    작은 프로그램들의 집합.
    주프로그램과 함께 램에 적재되지 않기 때문에 램 공간을 절약한다.
    (필요한 경우에만 적재되어 실행된다.)



powered by performancing firefox




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

프로세스 찾아서 지우고 실행하기  (0) 2006.08.21
데몬 프로그램 만들기  (0) 2006.08.21
Arm Assemble  (0) 2006.06.29
u-boot 상에서 irq로 led테스트  (0) 2006.06.23
에라이 씨발...  (0) 2006.06.23

u-boot 상에서 irq로 led테스트

Xscale PXA255로 공부하고 있는 학생입니다.

유영창님의 보드를 살려보자라는 글을 보고 어셈으로 start.S와 링커파일과 Makefile을
만들어서 이미지 생성 후 포팅했는데 전혀 GPIO 17번 핀에 연결 된 LED가 작동을 하지 않습니다.

자세히 보니깐 칩 LED인데 아주 미세하게 켜지는건 같은데 제대로 된 동작같지는 않아여

혹시 부트 로더로 LED on/off 해보신분 답변좀 해주세여...

start.S 어셈파일입니다.



#define PXA_REG_GP_BASE 0x40E0000
#define PXA_REG_OFFSET_GPDR0 0x0C
#define PXA_REG_OFFSET_GPSR0 0x18
#define PXA_REG_OFFSET_GPCR0 0x24
#define WAIT_TIME_LOOP 0xa0000
#define DEBUG_GPIO_LED1 (1<<17)


.text
.globl _start
_start:
b reset
b Undefined_Instruction
b Software_Interrupt
b Prefetch_Abort
b Data_Abort
b Not_Used
b IRQ

b FIQ


reset:
ledtest:

ldr r0, =PXA_REG_GP_BASE
mov r1, #DEBUG_GPIO_LED1

str r1, [r0, #PXA_REG_OFFSET_GPDR0]
str r1, [r0, #PXA_REG_OFFSET_GPCR0]

ledon: mov r4, #WAIT_TIME_LOOP

delay: nop
nop
subs r4, r4, #1
bne delay

str r1, [r0, #PXA_REG_OFFSET_GPSR0]

mov r4, #WAIT_TIME_LOOP

ledoff: nop
nop
subs r4, r4, #1
bne ledoff
str r1, [r0, #PXA_REG_OFFSET_GPSR0]
b ledon


boot_falut:
b reset


led_error_loop:

Undefined_Instruction:
Software_Interrupt:
Prefetch_Abort:
Data_Abort:
Not_Used:
IRQ:
FIQ:
b led_error_loop


powered by performancing firefox




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

프로세스 찾아서 지우고 실행하기  (0) 2006.08.21
데몬 프로그램 만들기  (0) 2006.08.21
Arm Assemble  (0) 2006.06.29
API &amp; SDK  (0) 2006.06.28
에라이 씨발...  (0) 2006.06.23

에라이 씨발...



에라이 씨발...
u-boot에서 삽질하던거 진짜 삽질 됐다. 그 동안 한거 때려치우고, ADS에 다시 작업해야 한다.
ADS 할 줄도 모르는데...ㅠㅡㅠ



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

프로세스 찾아서 지우고 실행하기  (0) 2006.08.21
데몬 프로그램 만들기  (0) 2006.08.21
Arm Assemble  (0) 2006.06.29
API &amp; SDK  (0) 2006.06.28
u-boot 상에서 irq로 led테스트  (0) 2006.06.23
Posted by shellbt
prev 1 ··· 6 7 8 9 next

openclose