https://armkeil.blob.core.windows.net/eval/MDK531.EXE
https://armkeil.blob.core.windows.net/legacy/MDK79525.EXE
准备 RAM.ini
FUNC void Setup (void) {
PC = 0x00200000;
}
_WDWORD(0xFFFFFD44, 0x00008000); // WDT_WDMR: Disable Watchdog
// Switching from Slow Clock to Main Oscillator for faster Download
_WDWORD(0xFFFFFC20, 0x00000601); // PMC_MOR: Enable Main Oscillator
_sleep_(10); // Wait for stable Main Oscillator
_WDWORD(0xFFFFFC30, 0x00000001); // PMC_MCKR: Switch to Main Oscillator
LOAD %L INCREMENTAL // Download
Setup(); // Setup for Running
g, main
准备Main.c此应用是一个MCU的hello world, 用GPIO驱动LED闪烁
#include "AT91SAM7S256.h"
#define LED_A (1U<<0) // PA0, pin 48
#define LED_B (1U<<1) // PA1, pin 47
void sleep_ms(unsigned int msec)
{
volatile unsigned int i;
for (i = 0; i < 1000 * msec; i++) {
__asm ("NOP");
}
}
int main(void) {
/* Configure the pins as outputs */
AT91C_BASE_PIOA->PIO_OER = (LED_A | LED_B);
/* Enable PIOC control on the pins*/
AT91C_BASE_PIOA->PIO_PER = (LED_A | LED_B);
/* Disable pull-ups */
AT91C_BASE_PIOA->PIO_PPUDR = (LED_A | LED_B);
while(1)
{
/* Turn LED on, high level */
AT91C_BASE_PIOA->PIO_SODR = LED_A;
sleep_ms(1);
/* Turn LED off, low level */
AT91C_BASE_PIOA->PIO_CODR = LED_A;
sleep_ms(1);
}
}
开启MDK,新建Project,选择存储位置








选中 Use ULink2/ME ARM Debugger, 取消 选择 Load Application at Startup, 添加Initilization File, 选择 RAM.ini

