main.c

来自「在BOOTLOADR中增加当今最好AES加密技术,可用于客户远程更新应用程式」· C语言 代码 · 共 82 行

C
82
字号
//-----------------------------------
// File:          main.c
// Function:      Boot test program 2 (remap)
// Supported chip(s):
//    - AT91SAM7XC128
//    - AT91SAM7XC256
// Supported toolchain(s):
//    - IAR Embedded Workbench
// Date created:  04 May 2006
// Created by:    JJo
//-----------------------------------

//-----------------------------------
// Includes

#include "board.h"
#include <AT91SAM7X256.h>
#include <lib_AT91SAM7X256.h>

//-----------------------------------
// Defines

#define SPEED     (MCK / 80)
#define NB_LEDS   4
#define LED1      AT91C_PIO_PB19
#define LED2      AT91C_PIO_PB20
#define LED3      AT91C_PIO_PB21
#define LED4      AT91C_PIO_PB22
#define LED_MASK  (LED1 | LED2 | LED3 | LED4)

//-----------------------------------
// Global variables

const unsigned int leds[] = {LED1, LED2, LED3, LED4};

//-----------------------------------
// Functions

/**
 * Name:      wait
 * Effect:    Waits for a specified period of time.
 * Input:
 *  - Time to wait for
 */
void wait(unsigned int time) {

    for (unsigned int i=0; i < time; i++);
}

/**
 * Name:      blinkLed
 * Effect:    Blinks specified led
 */
void blinkLed(unsigned int i) {

  AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, leds[i]);
  wait(SPEED);
  AT91F_PIO_SetOutput(AT91C_BASE_PIOB, leds[i]);
}

//-----------------------------------
// Main

int main() {

  // Configure leds
  AT91F_PIOB_CfgPMC();
  AT91F_PIO_CfgOutput(AT91C_BASE_PIOB, LED_MASK);
  AT91F_PIO_SetOutput(AT91C_BASE_PIOB, LED_MASK);

  // Configure and enable interrupts
  AT91F_AIC_ConfigureIt(AT91C_BASE_AIC, AT91C_ID_US0, 0,
                        AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE, (void *) 0);
  AT91F_AIC_ConfigureIt(AT91C_BASE_AIC, AT91C_ID_FIQ, 0,
                        AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE, (void *) 0);
  AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_US0);
  AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_FIQ);

  // Undefined instruction exception
  asm("DC32 0xEEEEEEEE");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?