기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요..

 

SMDK C100 WinCE 6.0 BSP를 기준으로 이솝의 보드를 테스트해보고 있는데..

테스트를 해본 결과 Steploader가 동작이 안됩니다.

(된다고 하시는 분이 계시긴 한데.. 제가 직접 테스트한 결과론...)

 

Main 함수에서 변수를 사용하지 않는 경우에는 정상 동작합니다만..

내부 변수를 사용하거나 함수를 호출하게 되면 리셋이 됩니다.

(리셋 핸들러는 제외한 나머지들은 루프를 돌기 때문에 동작을 반복하질 않습니다만.

 메인 함수의 같은 동작을 반복하는게 리셋이 되는 것으로 보입니다.

 왜 그런지를 아직 모르겠지만요..)

 

이런 증상들로 인해 결론은..

Startup에서 C 함수의 스택 초기화가 문제인 것으로 보입니다..

 

 

 

Steploader는 이전의 구조를 유지해서인지 아니면 메모리가 부족해서 인지..

DDR에다가 스택 메모리를 할당하도록 되어있는데요..

이때 DMC 초기화에서 이상이 생겨서 스택이 정확하게 초기화가 되지 않나 싶습니다..

 

Steploader의 DMC 초기화 코드와 u-boot의 초기화 코드가 약간 차이가 납니다.

DMC 초기화에 해당하는 코드와 관련된 파일만 첨부합니다..

- Steploader

 : SMDKC100_WinCE60_FMD_REL_2.00_090611PLATFORMCOMMONSRCSOCS5PC100_SEC_V1OALSYSTEMS5PC100_InitSystem.cvoid InitLPCON(void) 함수

- u-boot

 : u-boot-1.3.4-aesop.100428cpus5pc1xxs5pc100cpu_init.Smem_ctrl_asm_init: 루틴

 

 

C100의 데이터쉬트 iROM과 메모리맵을 참고해보면..

낸드 부팅시 iRAM이라는 곳에 BL1 로드되는 동시에 BL1의 스택으로 사용할 공간이 마련되어 있습니다..

 

작은 공간이긴 하지만 DMC를 초기화할 필요없이 이 영역을 스택으로 잡고 싶은데..

이렇게 하면 동작이 안되네요.

(제가 테스트한 코드는 아랫 부분 참조..)

 

=============================================================================================

;FIQStack_STEP EQU  0x00021000 ;(TOP_OF_STACKS_PHYSICAL - 0x0)   ; 0x0002_1000 (0x100)
;IRQStack_STEP EQU  0x00020F00 ;(FIQStack_PA        - FIQStackSize) ; 0x0002_0F00 (0x100)
;AbortStack_STEP EQU  0x00020E00 ;(IRQStack_PA        - IRQStackSize) ; 0x0002_0E00 (0x100)
;UndefStack_STEP EQU  0x00020D00 ;(AbortStack_PA      - AbortStackSize) ; 0x0002_0D00 (0x100)
;SVCStack_STEP EQU  0x00020C00 ;(UndefStack_PA      - UndefStackSize) ; 0x0002_0C00 (0x400)
;UserStack_STEP EQU  0x00020800 ;(SVCStack_PA        - SVCStackSize) ; 0x0002_0800 (0x800)

 

FIQStack_STEP EQU  0xD0021000 ;(TOP_OF_STACKS_PHYSICAL - 0x0)   ; 0x0002_1000 (0x100)
IRQStack_STEP EQU  0xD0020F00 ;(FIQStack_PA        - FIQStackSize) ; 0x0002_0F00 (0x100)
AbortStack_STEP EQU  0xD0020E00 ;(IRQStack_PA        - IRQStackSize) ; 0x0002_0E00 (0x100)
UndefStack_STEP EQU  0xD0020D00 ;(AbortStack_PA      - AbortStackSize) ; 0x0002_0D00 (0x100)
SVCStack_STEP EQU  0xD0020C00 ;(UndefStack_PA      - UndefStackSize) ; 0x0002_0C00 (0x400)
UserStack_STEP EQU  0xD0020800 ;(SVCStack_PA        - SVCStackSize) ; 0x0002_0800 (0x800)

 

;--------------------------------------------------
; Initialize Stack
; Stack size and location information is in "image_cfg.inc"
;--------------------------------------------------

  mrs  r0, cpsr
  bic  r0, r0, #Mode_MASK
  orr  r1, r0, #Mode_IRQ | NOINT
  msr  cpsr_cxsf, r1     ; IRQMode
  ldr  sp, =IRQStack_PA    ; IRQStack
  ;ldr  sp, =IRQStack_STEP   ; IRQStack (by just4you's test)

  bic  r0, r0, #Mode_MASK | NOINT
  orr  r1, r0, #Mode_SVC
  msr  cpsr_cxsf, r1     ; SVCMode
  ldr  sp, =SVCStack_PA    ; SVCStack
  ;ldr  sp, =SVCStack_STEP   ; SVCStack (by just4you's test)

 

=============================================================================================

 

 

1. 결국 스텝로더의 정상 동작을 위해서는..

iRAM에 스택을 잡던가 아니면 DRAM에 스택을 할당해야 하는데..

어떤 방법으로 해결을 하는게 좋을런지?..

 

2. 아무래도 DRAM에 스택을 잡는게 용량도 크고해서 u-boot의 코드를 기준으로..

스텝로더에서 참조하는 함수를 수정해서 테스트하고 있는데..

DRAM 초기화를 위해 참조할만한 자료가 있다면, 저에게 조언을 좀..

List of Articles
번호 제목 글쓴이 날짜 조회 수
3728 adb를 이용하여 쉘 사용시 파이프 입력에 관한 문의 호야상인 2010-08-27 564
3727 wifi 에러 문제관련하여 질문드립니다. [1] 텅빈깡통 2010-08-27 6144
3726 smdk6410의 load address에 관한 질문 [1] 박수민 2010-08-27 491
3725 Touch Screen Driver 관련 질문 진돌이 2010-08-27 654
3724 adb 이동식디스크 UMS mount faile [1] 이해호 2010-08-27 1185
3723 hostapd로 공유기(AP) 만들기 [1] 송길수 2010-08-27 1329
3722 preview 응용프로그램 실행 방법? 착한악마 2010-08-26 546
3721 Android 2.2 froyo 한글 locale 설정과 관련하여 문의 드립니다. [1] 한상우 2010-08-26 995
3720 오드로이드 [커널 2.6.32.9] 로딩시 패닉 관련 문의 file [1] 이종문 2010-08-26 554
3719 hd급 영상 MFC 인코딩 관련 질문 [2] 날다병아리 2010-08-26 831
3718 오드로이드 SDCARD의 Root FS를 안보이게 하는 방법은... [2] 김영일 2010-08-25 2769
3717 FFC/FPC 케이블 관련해서 여쭙니다. [4] 도찬구 2010-08-25 1086
3716 SO_BINDTODEVICE 관련 문의 [1] 호야상인 2010-08-25 728
3715 Odroid-T 해상도 문의 [4] 김장균 2010-08-25 585
3714 [질문] mt9d111 카메라 응용프로그램은? [1] 착한악마 2010-08-24 766
3713 [질문] 이솝 프로젝트 사용법에 관해.. [1] just4you 2010-08-24 516
3712 surface용 메모리 크기를 늘릴수 있나요? [2] pinebud 2010-08-24 856
3711 (수정) 안드로이드 USB Device에 외부 장치를 연결, 외부장치를 어... [3] choiyh73 2010-08-24 1653
3710 간단한 펌웨어레벨에서의 테스트인데 무엇이 문제인지 모르겠습니다. file [1] Karings 2010-08-24 529
» [질문] DMC 초기화 및 스택 할당.. file just4you 2010-08-23 671

사용자 로그인