'embeded/Cortex-M3 Ti'에 해당되는 글 45건

  1. 2012.01.31 Cortex-M3 인터럽트 관련 문서
  2. 2012.01.27 Cortex-M3 예제소스
  3. 2012.01.27 Cortex-M3 LM3S1968 Evaluation board
  4. 2012.01.20 ARM Cortex-M3 ISR 등록 방법
  5. 2012.01.16 ARM cortex-M3 LM3S1607 관련 블로그
embeded/Cortex-M3 Ti2012. 1. 31. 17:32
으헝헝 이런걸 찾고 있었던 거야 ㅠ.ㅠ

아무튼 중요한 내용은,
Cortex-M3 계열은 인터럽트 발생후 리셋하지 않기 때문에 수동으로 리셋을 해주어야 한다는 점인듯?


[링크 : http://skean.tistory.com/34]
[링크 :  http://eoworld.tistory.com/entry/LM3S8962-interrupt ]
  [링크 : http://www.cyworld.com/gooble/4856690] << 원본?

'embeded > Cortex-M3 Ti' 카테고리의 다른 글

Ti lm3s1968 arm cortex m3 i2c  (0) 2012.02.20
TI stellarisware / driverlib 기본설정 (uart예제)  (4) 2012.02.05
Cortex-M3 예제소스  (0) 2012.01.27
Cortex-M3 LM3S1968 Evaluation board  (0) 2012.01.27
ARM Cortex-M3 ISR 등록 방법  (0) 2012.01.20
Posted by 구차니
embeded/Cortex-M3 Ti2012. 1. 27. 19:49
Driverlib 사용하는 방법과 핀을 직접 설정하는 예제비교이다.

원래 stellarisware에는 핀을 직접 설정하는 blinky 라는 예제가 있고
그걸 어떤 분이 driverlib을 사용하는 방식으로 변경한 소스이다.

(물론 작동은 안될지도?)

[링크 : http://e2e.ti.com/support/microcontrollers/stellaris_arm_cortex-m3_microcontroller/f/471/t/123089.aspx]
Posted by 구차니
embeded/Cortex-M3 Ti2012. 1. 27. 10:53
제목이 모호하지만 기분탓으로 넘기고

일단 H-JTAG
LM Flash Programmer
MDK(KEIL) 을 이용한 플래시 read/write 관련 내용이라고 요약!

H-JTAG LPT를 이용한 READ
주의 : Evaluation board가 hibernate 모드면 못 읽어옴. 보드가 살아있는지 확인할 것!
보충 : USB 로 연결되어도 문제는 없음

Step 1. Settings - USB/LPT Selection - LPT 선택하고
           아래와 같이 장비명이 UNKNOWN에서 CORTEX-M3로 바뀌면 정상인식!


Step 2. F 아이콘 눌러 Flasher를 실행, 칩을 선택한다.
          칩모델은 LUMINARY - LMS1968


Step 3. Ext XTAL은 몰라서 그냥 1Mhz로 찍고(어짜피 1 이하로 입력하면 배쨈 -_-)
           INIT / PGM TCK는 그냥 안전빵으로 125KHz로 설정 


Step 4. 가장 아래의 칩 아이콘 눌러주고(Entire Chip 아이콘) Read를 눌러 파일로 저장!


Step 5. 만약 보드가 hibernate 모드라면 아래와 같은 에러가 발생한다.


          정상적으로 연결되었다면, 아래와 같이 읽어옴!


MDK를 이용한 USB 시리얼 JTAG
주의 : 읽어 오는것에 대한 설정은 없음.
보충 : 아직 안써봤음 -_-

Step 1. Stellaris ICDI 로 선택하고 Settings 누르면 


Step 2. 정상적으로 FTDI 드라이버가 설치 되어 있다면, 아래와 같이 Attached Devices에 뜨게 된다.


LM Flash Programmer - USB 를 이용한 ERASE / WRITE
주의 : Evaluation board에 패러럴과 USB JTAG 둘다 연결되면 인식을 못함
보충 : -

Step 1. LM3S1968 Evaluation Board로 설정


Step 2. 위에서 빼낸 bin 파일 선택하고 Program 누르면 3초 정도 내에 구워진 기분?


Step 3. Erase는 1초도 안걸린 기분?
---
2012.1.28 추가
"Upload Flash Contents to a .bin file" 에 파일 이름을 적고 entire Flash를 눌러준후 Upload를 누르면 파일로 저장된다.
---


Step 4. 이건 아직 쓸데 없는듯?


머.. 겁나서 읽어서 쓰기도 손이 덜덜덜 ㅠ.ㅠ
안에 들어있는거 날아가면 어떡해 ㅠ.ㅠ
막 이러면서 쑈함 -_-
Posted by 구차니
embeded/Cortex-M3 Ti2012. 1. 20. 10:40
Atmel avr에만 너무 찌들었나 -_-
cortex m3 관련 구조는 너무 달라서 이리저리 헤매는 중 ㅠ.ㅠ

stellarisware 데모 코드들을 뜯어보고 이리저리 보니
avr이 아래와 같이 ISR() 식으로 정해진 코드로 한다고 한다면
#include <avr/interrupt.h>

ISR(ADC_vect)
{
    // user code here
} 

arm ti cortex m3 는 초기화 코드중 isr_vector 섹션에 들어갈 변수에 함수 포인터를 등록해주는 식으로 구성된다.
말을 쉽게 하자면, 원하는 함수 명으로 대충 void func(void) 식으로 만들고 등록만 해주면 땡~
__attribute__ ((section(".isr_vector")))
void (* const g_pfnVectors[])(void) =
{
    (void (*)(void))((unsigned long)pulStack + sizeof(pulStack)),
                                            // The initial stack pointer
    ResetISR,                               // The reset handler
    NmiSR,                                  // The NMI handler
    FaultISR,                               // The hard fault handler
    IntDefaultHandler,                      // The MPU fault handler
    IntDefaultHandler,                      // The bus fault handler
    IntDefaultHandler,                      // The usage fault handler
    0,                                      // Reserved
    0,                                      // Reserved
    0,                                      // Reserved
    0,                                      // Reserved
    IntDefaultHandler,                      // SVCall handler
    IntDefaultHandler,                      // Debug monitor handler
    0,                                      // Reserved
    IntDefaultHandler,                      // The PendSV handler
    IntDefaultHandler,                      // The SysTick handler
    IntDefaultHandler,                      // GPIO Port A
    IntDefaultHandler,                      // GPIO Port B
    IntDefaultHandler,                      // GPIO Port C
    IntDefaultHandler,                      // GPIO Port D
    IntDefaultHandler,                      // GPIO Port E
    IntDefaultHandler,                      // UART0 Rx and Tx
    IntDefaultHandler,                      // UART1 Rx and Tx
    IntDefaultHandler,                      // SSI0 Rx and Tx
    IntDefaultHandler,                      // I2C0 Master and Slave
    IntDefaultHandler,                      // PWM Fault
    IntDefaultHandler,                      // PWM Generator 0
    IntDefaultHandler,                      // PWM Generator 1
    IntDefaultHandler,                      // PWM Generator 2
    IntDefaultHandler,                      // Quadrature Encoder 0
    IntDefaultHandler,                      // ADC Sequence 0
    IntDefaultHandler,                      // ADC Sequence 1
    IntDefaultHandler,                      // ADC Sequence 2
    IntDefaultHandler,                      // ADC Sequence 3
    WatchdogIntHandler,                     // Watchdog timer
    Timer0IntHandler,                       // Timer 0 subtimer A
    IntDefaultHandler,                      // Timer 0 subtimer B
    Timer1IntHandler,                       // Timer 1 subtimer A
    IntDefaultHandler,                      // Timer 1 subtimer B
    IntDefaultHandler,                      // Timer 2 subtimer A
    IntDefaultHandler,                      // Timer 2 subtimer B
    IntDefaultHandler,                      // Analog Comparator 0
    IntDefaultHandler,                      // Analog Comparator 1
    IntDefaultHandler,                      // Analog Comparator 2
    IntDefaultHandler,                      // System Control (PLL, OSC, BO)
    IntDefaultHandler,                      // FLASH Control
    IntDefaultHandler,                      // GPIO Port F
    IntDefaultHandler,                      // GPIO Port G
    IntDefaultHandler,                      // GPIO Port H
    IntDefaultHandler,                      // UART2 Rx and Tx
    IntDefaultHandler,                      // SSI1 Rx and Tx
    IntDefaultHandler,                      // Timer 3 subtimer A
    IntDefaultHandler,                      // Timer 3 subtimer B
    IntDefaultHandler,                      // I2C1 Master and Slave
    IntDefaultHandler,                      // Quadrature Encoder 1
    IntDefaultHandler,                      // CAN0
    IntDefaultHandler,                      // CAN1
    IntDefaultHandler,                      // CAN2
    IntDefaultHandler,                      // Ethernet
    IntDefaultHandler                       // Hibernate
}; 

void
ResetISR(void)
{
    //
    // Jump to the CCS C Initialization Routine.
    //
    __asm("    .global _c_int00\n"
          "    b.w     _c_int00");
}

static void
IntDefaultHandler(void)
{
    //
    // Go into an infinite loop.
    //
    while(1)
    {
    }
} 

[링크 : http://e2e.ti.com/support/microcontrollers/stellaris_arm_cortex-m3_microcontroller/f/471/t/85136.aspx#294202]
Posted by 구차니
embeded/Cortex-M3 Ti2012. 1. 16. 21:55
오늘 code sourcery 설치해서 낑낑대고 하는 중인데
정리가 잘되어 있는 블로그를 발견해서 링크 투척!

[링크 : http://blog.naver.com/PostList.nhn?blogId=sigsaly&from=postList&categoryNo=71]

[링크 : http://www.yagarto.de/#download]

[링크 : https://sourcery.mentor.com/GNUToolchain/subscription29095] CodeSorcery Standard ARM EABI
    [링크 : https://sourcery.mentor.com/GNUToolchain/release1994]
[링크 : https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription3057?lite...  Lite 버전(컴파일러만)
    [링크 : https://sourcery.mentor.com/sgpp/lite/arm/portal/release2029
Posted by 구차니