qemu除錯cortex m3程式

2021-06-06 16:07:41 字數 641 閱讀 9619

1.安裝arm-none-eabi :arm-2011.09-69-arm-none-eabi.bin

2.安裝qemu

3.建立原始檔

4.arm-none-eabi-gcc -o main.elf hello.c -g -mcpu=cortex-m3 -mthumb -t generic-hosted.ld

5.qemu-system-arm  -cpu cortex-m3 -nographic -monitor null -serial null -semihosting -kernel main.elf

工具常用命令:

arm-none-eabi-as -mcpu=cortex-m3 -mthumb example4.s -o example4.o

arm-none-eabi-ld -ttext 0x2000c000 -tdata 0x2000d000 -o example4.out example4.o

arm-none-eabi-objcopy -obinary -r .data example4.out example4.bin

readelf -a example4.out >>1.txt

arm-none-eabi-objdump -s example4.out > example4.list

Cortex M3異常筆記

異常型別 cortex m3編號為1 15對應系統異常,大於等於16的全部是核心級額外部中斷,除個別異常 復位,nmi,硬fault 的優先順序被定死之外,其他異常優先順序都是可以程式設計的。如果乙個發生的異常不能即刻響應,就稱它被 懸起 pending 少數異常時不能被懸起的。乙個異常被懸起的原因...

Cortex M3復位序列

在離開復位狀態後,cm3 做的第一件事就是讀取下列兩個32 位整數的值 從位址 0x0000,0000 處取出msp 的初始值。從位址 0x0000,0004 處取出pc 的初始值 這個值是復位向量,lsb 必須是1。然後從這個值所對應的位址處取指。請注意,這與傳統的arm 架構不同 其實也和絕大多...

Cortex M3的整體風景

一 流水線 1 cortex cm3處理器使用乙個3級流水線,流水線的3級分別是 取指,解碼和執行 2 當執行的指令大多數是16位時,處理器會每隔乙個週期做一次取指。當執行到跳轉指令時需要清洗流水線,處理器會不得不跳轉目的地重新取指。為了改善這種情 況,cortex cm3支援一定數量的v7m指令可...