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

quad-core 인 Cortex-a9의 example reset_handler 부분을 보면요. 

irq모드의 스택 주소가 1개에요.

4 코어 모두 동일한 주소로 자기의 irq 스택을 설정하는 건데요. 

1. irq는 GIC가 분배해주는거라 한순간에 1개의 irq만 처리하기 때문에

   따로 동기화를 안해도 되는건가요? 


2. irq 말고 data abort나 prefetch abort의 경우는 각 코어별로 서로다른 코드를 실행하더라도 동시에 발생할수있을텐데 이 경우에는 스택주소가 달라야 하지 않을까요? 

 왜 스택설정을 해주는 코드가 안보일까요. u-boot의 reset핸들러 가봐도 irq는 설정하는것 같은데 나머지는 없네요.



--------------------------------------------------------------

; ------------------------------------------------------------

; Reset Handler - Generic initialization, run by all CPUs

; ------------------------------------------------------------


  IMPORT ||Image$$IRQ_STACK$$ZI$$Limit||

  IMPORT ||Image$$ARM_LIB_STACKHEAP$$ZI$$Limit||

  IMPORT ||Image$$PAGETABLES$$ZI$$Base||

  IMPORT enable_branch_prediction

  IMPORT invalidate_caches


  EXPORT Reset_Handler   ; Exported for callgraph purposes!

Reset_Handler PROC


  ;

  ; Setup stacks

  ;---------------

  MSR     CPSR_c, #Mode_IRQ:OR:I_Bit:OR:F_Bit

  LDR     sp, =||Image$$IRQ_STACK$$ZI$$Limit||


  MSR     CPSR_c, #Mode_SYS:OR:I_Bit:OR:F_Bit   ; No interrupts

  LDR     sp, =||Image$$ARM_LIB_STACKHEAP$$ZI$$Limit||

---------------------------------------------------------------


고도리

2014.08.31 23:18:22
*.111.12.170

stack 설정이 같을겁니다.


안그러면 문제가 발생할 가능성도 있어서요.

쁘앙쁘앙

2014.09.04 18:43:40
*.254.189.85

아 답변감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인