hal_remap.c
来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C语言 代码 · 共 135 行
C
135 行
/**********************************************************************************/
/* */
/* Copyright (C) 2006 Oki Electric Industry Co., LTD. */
/* */
/* System Name : uPLAT7D series */
/* Module Name : uPLAT7D system Remap HAL program */
/* File Name : hal_remap.c */
/* Revision : 01.00 */
/* Date : 2006/1/24 initial version */
/* */
/**********************************************************************************/
#include "common.h"
#if defined(__arm)
#include "ml675050.h"
#else
#include "ml675050sim.h"
#endif
#include "hal_common.h"
#include "hal_remap.h"
/***********************************/
/* type definition */
/***********************************/
#define REMAP_REGVAL_NON_REMAP (0x00000000) /* Non remap(External ROM remap) */
#define REMAP_REGVAL_EXTSRAM_REMAP (0x00000008) /* External SRAM remap */
#define REMAP_REGVAL_EXTDRAM_REMAP (0x00000009) /* External DRAM remap */
#define REMAP_REGVAL_AHBSRAM_REMAP (0x0000000A) /* AHB SRAM remap */
#define EXPAHBRAM_REGVAL_NON (0x00000000) /* USB2.0:Enable, LCD:Enable */
#define EXPAHBRAM_REGVAL_USB (0x00000001) /* USB2.0:Disable, LCD:Enable */
#define EXPAHBRAM_REGVAL_LCD (0x00000002) /* USB2.0:Enable, LCD:Disable */
#define EXPAHBRAM_REGVAL_USB_LCD (0x00000003) /* USB2.0:Disable, LCD:Disable */
#define REMAP_UN_WRITE_PROTECT (0x0000003C) /* Release write protect of MASK register */
/***********************************/
/* Static functions prototype */
/***********************************/
volatile uint32_t dummy_read_REMAP;
/*****************************************************************************/
/* */
/* Function Name : int16_t HALRemap_RemapSetRam( uint8_t expand_area ) */
/* Input : Expand memory area */
/* : USB2.0 LCD */
/* : 0: Enable Enable */
/* : 1: Disable Enable */
/* : 2: Enable Disable */
/* : 3: Disable Disable */
/* Output : HAL_OK(1) */
/* : HAL_PARAM_ERROR(-2) */
/* */
/* Note : Setting of expand RAM area of AHBRAM. */
/* */
/*****************************************************************************/
int16_t HALRemap_RemapSetRam( uint8_t expand_area )
{
int16_t rtnVal = HAL_OK;
uint32_t set_val = 0;
switch( expand_area ){
case EXPAHBRAM_SELECT_NON:
set_val = EXPAHBRAM_REGVAL_NON;
break;
case EXPAHBRAM_SELECT_USB:
set_val = EXPAHBRAM_REGVAL_USB;
break;
case EXPAHBRAM_SELECT_LCD:
set_val = EXPAHBRAM_REGVAL_LCD;
break;
case EXPAHBRAM_SELECT_USB_LCD:
set_val = EXPAHBRAM_REGVAL_USB_LCD;
break;
default:
rtnVal = HAL_PARAM_ERROR;
break;
}
if (rtnVal == HAL_OK) {
OkiCLib_write32(AHBRAMCNT, set_val);
dummy_read_REMAP = OkiCLib_read32(AHBRAMCNT); /* dummy read */
}
return rtnVal;
}
/*****************************************************************************/
/* */
/* Function Name : int16_t HALRemap_RemapSetFunction( uint8_t mem_area ) */
/* Input : Memory area */
/* : 0: Non Remap(External ROM remap) */
/* : 1: External SRAM Remap */
/* : 2: External DRAM Remap */
/* : 3: AHBRAM Remap */
/* Output : HAL_OK(1) */
/* : HAL_PARAM_ERROR(-2) */
/* */
/* Note : Setting of Rimapp. */
/* */
/*****************************************************************************/
int16_t HALRemap_RemapSetFunction( uint8_t mem_area )
{
int16_t rtnVal = HAL_OK;
uint32_t set_val = 0;
switch( mem_area ){
case REMAP_NON_REMAP:
set_val = REMAP_REGVAL_NON_REMAP;
break;
case REMAP_EXTSRAM_REMAP:
set_val = REMAP_REGVAL_EXTSRAM_REMAP;
break;
case REMAP_EXTDRAM_REMAP:
set_val = REMAP_REGVAL_EXTDRAM_REMAP;
break;
case REMAP_AHBSRAM_REMAP:
set_val = REMAP_REGVAL_AHBSRAM_REMAP;
break;
default:
rtnVal = HAL_PARAM_ERROR;
break;
}
if (rtnVal == HAL_OK) {
OkiCLib_write32(RMPCON, REMAP_UN_WRITE_PROTECT);
OkiCLib_write32(RMPCON, set_val);
dummy_read_REMAP = OkiCLib_read32(RMPCON); /* dummy read */
}
return rtnVal;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?