⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsp.c

📁 大名鼎鼎的uCOS-II在ARM1176处理器上的移植源代码+说明文档.强烈推荐!
💻 C
📖 第 1 页 / 共 3 页
字号:
/*
*********************************************************************************************************
*                                     MICIRUM BOARD SUPPORT PACKAGE
*
*                          (c) Copyright 2003-2006; Micrium, Inc.; Weston, FL
*
*                   All rights reserved.  Protected by international copyright laws.
*                   Knowledge of the source code may not be used to write a similar
*                   product.  This file may only be used in accordance with a license
*                   and should not be redistributed in any way.
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*
*                                         BOARD SUPPORT PACKAGE
*
*                                             ARM 1173JZF-S
*
* Filename      : bsp.c
* Version       : V1.00
* Programmer(s) : Jean J. Labrosse
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                               INCLUDES
*********************************************************************************************************
*/

#include <includes.h>


/*
*********************************************************************************************************
*                                            #DEFINE CONSTANTS
*********************************************************************************************************
*/

#define  LCD_PIXELS_PER_LINE            256
#define  LCD_LINES_PER_PANEL            384
#define  LCD_CLOCKS_PER_LINE            256
#define  LCD_BYTES_PER_PIXEL              2

#define  CPU_CLK_FREQ                400000                     /* The CLK frequency, in Hz                                 */

/*
*********************************************************************************************************
*                                                MACROS
*********************************************************************************************************
*/


/*
*********************************************************************************************************
*                                               DATA TYPES
*********************************************************************************************************
*/

typedef  void  (*BSP_PFNCT)(void);


/*
*********************************************************************************************************
*                                              LOCAL VARIABLES
*********************************************************************************************************
*/

static  BSP_PFNCT    BSP_PICVectors[32];

static  CPU_INT08U   LCD_Buffer[LCD_PIXELS_PER_LINE * LCD_LINES_PER_PANEL * LCD_BYTES_PER_PIXEL];
static  CPU_INT16U   LCD_BGColor      = 0xFFFF;
const   CPU_INT08U   LCD_Charset[][8] = {
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
{ 0x00,0x00,0x00,0x00,0x00,0x4f,0x00,0x00 },// !
{ 0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00 },// "
{ 0x00,0x00,0x00,0x14,0x7f,0x14,0x7f,0x14 },// #
{ 0x00,0x00,0x00,0x24,0x2a,0x7f,0x2a,0x12 },// $
{ 0x00,0x00,0x00,0x23,0x13,0x08,0x64,0x62 },// %
{ 0x00,0x00,0x00,0x36,0x49,0x55,0x22,0x50 },// &
{ 0x00,0x00,0x00,0x00,0x05,0x03,0x00,0x00 },// '
{ 0x00,0x00,0x00,0x00,0x1c,0x22,0x41,0x00 },// (
{ 0x00,0x00,0x00,0x00,0x41,0x22,0x1c,0x00 },// )
{ 0x00,0x00,0x00,0x14,0x08,0x3e,0x08,0x14 },// *
{ 0x00,0x00,0x00,0x08,0x08,0x3e,0x08,0x08 },// +
{ 0x00,0x00,0x00,0x00,0x50,0x30,0x00,0x00 },// ,
{ 0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08 },// -
{ 0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00 },// .
{ 0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02 },// /
{ 0x00,0x00,0x00,0x3e,0x51,0x49,0x45,0x3e },// 0
{ 0x00,0x00,0x00,0x00,0x42,0x7f,0x40,0x00 },// 1
{ 0x00,0x00,0x00,0x42,0x61,0x51,0x49,0x46 },// 2
{ 0x00,0x00,0x00,0x21,0x41,0x45,0x4b,0x31 },// 3
{ 0x00,0x00,0x00,0x18,0x14,0x12,0x7f,0x10 },// 4
{ 0x00,0x00,0x00,0x27,0x45,0x45,0x45,0x39 },// 5
{ 0x00,0x00,0x00,0x3c,0x4a,0x49,0x49,0x30 },// 6
{ 0x00,0x00,0x00,0x01,0x71,0x09,0x05,0x03 },// 7
{ 0x00,0x00,0x00,0x36,0x49,0x49,0x49,0x36 },// 8
{ 0x00,0x00,0x00,0x06,0x49,0x49,0x29,0x1e },// 9
{ 0x00,0x00,0x00,0x00,0x36,0x36,0x00,0x00 },// :
{ 0x00,0x00,0x00,0x00,0x56,0x36,0x00,0x00 },// ;
{ 0x00,0x00,0x00,0x08,0x14,0x22,0x41,0x00 },// <
{ 0x00,0x00,0x00,0x14,0x14,0x14,0x14,0x14 },// =
{ 0x00,0x00,0x00,0x00,0x41,0x22,0x14,0x08 },// >
{ 0x00,0x00,0x00,0x02,0x01,0x51,0x09,0x06 },// ?
{ 0x00,0x00,0x00,0x32,0x49,0x79,0x41,0x3e },// @
{ 0x00,0x00,0x00,0x7e,0x11,0x11,0x11,0x7e },// A
{ 0x00,0x00,0x00,0x7f,0x49,0x49,0x49,0x36 },// B
{ 0x00,0x00,0x00,0x3e,0x41,0x41,0x41,0x22 },// C
{ 0x00,0x00,0x00,0x7f,0x41,0x41,0x22,0x1c },// D
{ 0x00,0x00,0x00,0x7f,0x49,0x49,0x49,0x41 },// E
{ 0x00,0x00,0x00,0x7f,0x09,0x09,0x09,0x01 },// F
{ 0x00,0x00,0x00,0x3e,0x41,0x49,0x49,0x7a },// G
{ 0x00,0x00,0x00,0x7f,0x08,0x08,0x08,0x7f },// H
{ 0x00,0x00,0x00,0x00,0x41,0x7f,0x41,0x00 },// I
{ 0x00,0x00,0x00,0x20,0x40,0x41,0x3f,0x01 },// J
{ 0x00,0x00,0x00,0x7f,0x08,0x14,0x22,0x41 },// K
{ 0x00,0x00,0x00,0x7f,0x40,0x40,0x40,0x40 },// L
{ 0x00,0x00,0x00,0x7f,0x02,0x0c,0x02,0x7f },// M
{ 0x00,0x00,0x00,0x7f,0x04,0x08,0x10,0x7f },// N
{ 0x00,0x00,0x00,0x3e,0x41,0x41,0x41,0x3e },// O
{ 0x00,0x00,0x00,0x7f,0x09,0x09,0x09,0x06 },// P
{ 0x00,0x00,0x00,0x3e,0x41,0x51,0x21,0x5e },// Q
{ 0x00,0x00,0x00,0x7f,0x09,0x19,0x29,0x46 },// R
{ 0x00,0x00,0x00,0x46,0x49,0x49,0x49,0x31 },// S
{ 0x00,0x00,0x00,0x01,0x01,0x7f,0x01,0x01 },// T
{ 0x00,0x00,0x00,0x3f,0x40,0x40,0x40,0x3f },// U
{ 0x00,0x00,0x00,0x1f,0x20,0x40,0x20,0x1f },// V
{ 0x00,0x00,0x00,0x3f,0x40,0x38,0x40,0x3f },// W
{ 0x00,0x00,0x00,0x63,0x14,0x08,0x14,0x63 },// X
{ 0x00,0x00,0x00,0x07,0x08,0x70,0x08,0x07 },// Y
{ 0x00,0x00,0x00,0x61,0x51,0x49,0x45,0x43 },// Z
{ 0x00,0x00,0x00,0x00,0x7f,0x41,0x41,0x00 },// [
{ 0x00,0x00,0x00,0x02,0x04,0x08,0x10,0x20 },// Backslash
{ 0x00,0x00,0x00,0x00,0x41,0x41,0x7f,0x00 },// ]
{ 0x00,0x00,0x00,0x04,0x02,0x01,0x02,0x04 },// ^
{ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40 },// _
{ 0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x00 },// `
{ 0x00,0x00,0x00,0x20,0x54,0x54,0x54,0x78 },// a
{ 0x00,0x00,0x00,0x7f,0x48,0x44,0x44,0x38 },// b
{ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x20 },// c
{ 0x00,0x00,0x00,0x38,0x44,0x44,0x48,0x7f },// d
{ 0x00,0x00,0x00,0x38,0x54,0x54,0x54,0x18 },// e
{ 0x00,0x00,0x00,0x08,0x7e,0x09,0x01,0x02 },// f
{ 0x00,0x00,0x00,0x0c,0x52,0x52,0x52,0x3e },// g
{ 0x00,0x00,0x00,0x7f,0x08,0x04,0x04,0x78 },// h
{ 0x00,0x00,0x00,0x00,0x44,0x7d,0x40,0x00 },// i
{ 0x00,0x00,0x00,0x20,0x40,0x44,0x3d,0x00 },// j
{ 0x00,0x00,0x00,0x7f,0x10,0x28,0x44,0x00 },// k
{ 0x00,0x00,0x00,0x00,0x41,0x7f,0x40,0x00 },// l
{ 0x00,0x00,0x00,0x7c,0x04,0x18,0x04,0x78 },// m
{ 0x00,0x00,0x00,0x7c,0x08,0x04,0x04,0x78 },// n
{ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38 },// o
{ 0x00,0x00,0x00,0x7c,0x14,0x14,0x14,0x08 },// p
{ 0x00,0x00,0x00,0x08,0x14,0x14,0x18,0x7c },// q
{ 0x00,0x00,0x00,0x7c,0x08,0x04,0x04,0x08 },// r
{ 0x00,0x00,0x00,0x48,0x54,0x54,0x54,0x20 },// s
{ 0x00,0x00,0x00,0x04,0x3f,0x44,0x40,0x20 },// t
{ 0x00,0x00,0x00,0x3c,0x40,0x40,0x20,0x7c },// u
{ 0x00,0x00,0x00,0x1c,0x20,0x40,0x20,0x1c },// v
{ 0x00,0x00,0x00,0x3c,0x40,0x30,0x40,0x3c },// w
{ 0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44 },// x
{ 0x00,0x00,0x00,0x0c,0x50,0x50,0x50,0x3c },// y
{ 0x00,0x00,0x00,0x44,0x64,0x54,0x4c,0x44 },// z
{ 0x00,0x00,0x00,0x00,0x08,0x36,0x41,0x00 },// {
{ 0x00,0x00,0x00,0x00,0x00,0x7f,0x00,0x00 },// |
{ 0x00,0x00,0x00,0x10,0x08,0x08,0x10,0x08 },// }
{ 0x00,0x00,0x00,0x78,0x46,0x41,0x46,0x78 }};// ~


/*
*********************************************************************************************************
*                                              LOCAL TABLES
*********************************************************************************************************
*/


/*
*********************************************************************************************************
*                                          LOCAL FUNCITON PROTOTYPES
*********************************************************************************************************
*/

static  void  LCD_Init      (void);
static  void  Tmr_TickInit  (void);


/*
******************************************************************************************************************************
******************************************************************************************************************************
*                                     GENERAL INTERFACE FUNCTIONS
******************************************************************************************************************************
******************************************************************************************************************************
*/

/*
*********************************************************************************************************
*                                         BSP INITIALIZATION
*
* Description : This function should be called by your application code before you make use of any of the
*               functions found in this module.
*
* Arguments   : none
*
* Returns     : none
*********************************************************************************************************
*/

void  BSP_Init (void)
{
    LCD_Init();
    Tmr_TickInit();
}

/*
*********************************************************************************************************
*                                      Get the CPU Clock Frequency
*
* Description: This function reads CPU registers to determine the CPU clock frequency of the chip.
*
* Argument(s): none
*
* Returns    : Clock frequency in KHz.
*********************************************************************************************************
*/

CPU_INT32U  BSP_CPU_ClkFreq (void)
{
    return (CPU_CLK_FREQ);
}


/*
******************************************************************************************************************************
******************************************************************************************************************************
*                                           PB & LED FUNCTIONS
******************************************************************************************************************************
******************************************************************************************************************************
*/

/*
*********************************************************************************************************
*                                         GET 'PUSH BUTTON' STATUS
*
* Description : This function is used to get the status of any push button on the board.
*
* Arguments   : push_button    is the number of the push button to probe
*                              1    probe the push button B1
*                              2    probe the push button B2
*********************************************************************************************************
*/

CPU_BOOLEAN  PB_GetStatus (CPU_INT08U pb)
{
    CPU_BOOLEAN  status;


    switch (pb) {
        case 1:
             if (LED_SWITCHES & 0x00000001) {
                return (DEF_TRUE);
             }
             break;
        case 2:
             if (LED_SWITCHES & 0x00000002) {
                return (DEF_TRUE);
             }
             break;
        case 3:
             if (LED_SWITCHES & 0x00000004) {
                return (DEF_TRUE);
             }
             break;
        case 4:
             if (LED_SWITCHES & 0x00000008) {
                return (DEF_TRUE);
             }
             break;
        default:
             break;        
             
    }
    
    return (DEF_FALSE);
}

/*
*********************************************************************************************************
*                                             LED ON
*
* Description : This function is used to control any or all the LEDs on the board.
*
* Arguments   : led    is the number of the LED to control
*                      0    indicates that you want ALL the LEDs to be ON
*                      1    turns ON LED1  on the board
*                      .
*                      .
*                     4    turns ON LED16 on the board
*********************************************************************************************************
*/

void  LED_On (CPU_INT08U led)
{
    switch (led) {

⌨️ 快捷键说明

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