本文整理汇总了C++中HWREG函数的典型用法代码示例。如果您正苦于以下问题:C++ HWREG函数的具体用法?C++ HWREG怎么用?C++ HWREG使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了HWREG函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: UpdaterUSB
//*****************************************************************************
//
// This is the main routine for performing an update from a mass storage
// device.
//
// This function forms the main loop of the USB stick updater. It polls for
// a USB mass storage device to be connected, Once a device is connected
// it will attempt to read a firmware image from the device and load it into
// flash.
//
// \return None.
//
//*****************************************************************************
void
UpdaterUSB(void)
{
//
// Loop forever, running the USB host driver.
//
while(1)
{
USBHCDMain();
//
// Check for a state change from the USB driver.
//
switch(g_eState)
{
//
// This state means that a mass storage device has been
// plugged in and enumerated.
//
case STATE_DEVICE_ENUM:
{
//
// Attempt to read the application image from the storage
// device and load it into flash memory.
//
if(ReadAppAndProgram())
{
//
// There was some error reading or programming the app,
// so reset the state to no device which will cause a
// wait for a new device to be plugged in.
//
g_eState = STATE_NO_DEVICE;
}
else
{
//
// User app load and programming was successful, so reboot
// the micro. Perform a software reset request. This
// will cause the microcontroller to reset; no further
// code will be executed.
//
HWREG(NVIC_APINT) = NVIC_APINT_VECTKEY |
NVIC_APINT_SYSRESETREQ;
//
// The microcontroller should have reset, so this should
// never be reached. Just in case, loop forever.
//
while(1)
{
}
}
break;
}
//
// This state means that there is no device present, so just
// do nothing until something is plugged in.
//
case STATE_NO_DEVICE:
{
break;
}
}
}
}
开发者ID:Razofiter,项目名称:Luminary-Micro-Library,代码行数:80,代码来源:usb_stick_update.c
示例2: DMTimerWritePostedStatusGet
/**
* \brief Read the status of Write Posted Status register.
*
* \param baseAdd Base Address of the DMTimer Module Register.
*
* \return This API returns the status of TWPS register.
*
**/
unsigned int DMTimerWritePostedStatusGet(unsigned int baseAdd)
{
/* Return the status of TWPS register */
return (HWREG(baseAdd + DMTIMER_TWPS));
}
开发者ID:qb50-cu-adcs,项目名称:maacs,代码行数:13,代码来源:dmtimer.c
示例3: vSerialTxCoRoutine
static void vSerialTxCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )
{
portTickType xDelayPeriod;
static unsigned long *pulRandomBytes = mainFIRST_PROGRAM_BYTES;
/* Co-routine MUST start with a call to crSTART. */
crSTART( xHandle );
for(;;)
{
/* Was the previously transmitted string received correctly? */
if( uxErrorStatus != pdPASS )
{
/* An error was encountered so set the error LED. */
vSetErrorLED();
}
/* The next character to Tx is the first in the string. */
cNextChar = mainFIRST_TX_CHAR;
UARTIntDisable( UART0_BASE, UART_INT_TX );
{
/* Send the first character. */
if( !( HWREG( UART0_BASE + UART_O_FR ) & UART_FR_TXFF ) )
{
HWREG( UART0_BASE + UART_O_DR ) = cNextChar;
}
/* Move the variable to the char to Tx on so the ISR transmits
the next character in the string once this one has completed. */
cNextChar++;
}
UARTIntEnable(UART0_BASE, UART_INT_TX);
/* Toggle the LED to show a new string is being transmitted. */
vParTestToggleLED( mainCOMMS_TX_LED );
/* Delay before we start the string off again. A pseudo-random delay
is used as this will provide a better test. */
xDelayPeriod = xTaskGetTickCount() + ( *pulRandomBytes );
pulRandomBytes++;
if( pulRandomBytes > mainTOTAL_PROGRAM_MEMORY )
{
pulRandomBytes = mainFIRST_PROGRAM_BYTES;
}
/* Make sure we don't wait too long... */
xDelayPeriod &= mainMAX_TX_DELAY;
/* ...but we do want to wait. */
if( xDelayPeriod < mainMIN_TX_DELAY )
{
xDelayPeriod = mainMIN_TX_DELAY;
}
/* Block for the random(ish) time. */
crDELAY( xHandle, xDelayPeriod );
}
/* Co-routine MUST end with a call to crEND. */
crEND();
}
开发者ID:InSoonPark,项目名称:FreeRTOS,代码行数:63,代码来源:main.c
示例4: DMTimerReloadGet
/**
* \brief Get the reload count value from the timer load register.
*
* \param baseAdd Base Address of the DMTimer Module Register.
*
* \return This API returns the value present in DMTimer Load Register.
*
**/
unsigned int DMTimerReloadGet(unsigned int baseAdd)
{
/* Return the contents of TLDR */
return (HWREG(baseAdd + DMTIMER_TLDR));
}
开发者ID:qb50-cu-adcs,项目名称:maacs,代码行数:13,代码来源:dmtimer.c
示例5: DMTimerIntStatusGet
/**
* \brief Read the status of IRQ_STATUS register.
*
* \param baseAdd Base Address of the DMTimer Module Register.
*
* \return This API returns the status of IRQSTATUS register.
*
**/
unsigned int DMTimerIntStatusGet(unsigned int baseAdd)
{
/* Return the status of IRQSTATUS register */
return (HWREG(baseAdd + DMTIMER_IRQSTATUS));
}
开发者ID:qb50-cu-adcs,项目名称:maacs,代码行数:13,代码来源:dmtimer.c
示例6: SysTickMode_DeepSleep
static inline void SysTickMode_DeepSleep(void)
{
HWREG(NVIC_ST_RELOAD) = DEEPSLEEP_CPU / (1000/100) - 1;
HWREG(NVIC_ST_CURRENT) = 0; // Clear SysTick
}
开发者ID:RickKimball,项目名称:tivac-core,代码行数:5,代码来源:wiring.c
示例7: SysTickMode_Run
static inline void SysTickMode_Run(void)
{
HWREG(NVIC_ST_RELOAD) = F_CPU / SYSTICKHZ - 1;
HWREG(NVIC_ST_CURRENT) = 0;
}
开发者ID:RickKimball,项目名称:tivac-core,代码行数:5,代码来源:wiring.c
示例8: GPIOCIntHandler
//*****************************************************************************
//
// Handles the GPIO port C interrupt.
//
// This function is called when GPIO port C asserts its interrupt. GPIO port
// C is configured to generate an interrupt on the rising edge of the encoder
// input signal. The time between the current edge and the previous edge is
// computed and used as a measure of the rotor speed.
//
// \return None.
//
//*****************************************************************************
void
GPIOCIntHandler(void)
{
unsigned long ulTime, ulNewTime;
//
// Clear the GPIO interrupt.
//
GPIOPinIntClear(PIN_ENCA_PORT, PIN_ENCA_PIN);
//
// Get the time of this edge.
//
ulNewTime = g_ulSpeedTime + HWREG(QEI0_BASE + QEI_O_TIME);
//
// Compute the time between this edge and the previous edge.
//
ulTime = ulNewTime - g_ulSpeedPrevious;
//
// Save the time of the current edge.
//
g_ulSpeedPrevious = ulNewTime;
//
// See if this edge should be skipped.
//
if(HWREGBITW(&g_ulSpeedFlags, FLAG_SKIP_BIT))
{
//
// This edge should be skipped, but an edge time now exists so the next
// edge should not be skipped.
//
HWREGBITW(&g_ulSpeedFlags, FLAG_SKIP_BIT) = 0;
//
// There is nothing further to be done.
//
return;
}
//
// Indicate that an edge has been seen to prevent the QEI interrupt handler
// from forcing the rotor speed to zero.
//
HWREGBITW(&g_ulSpeedFlags, FLAG_EDGE_BIT) = 1;
//
// Compute the new speed from the time between edges.
//
SpeedNewValue(((unsigned long)SYSTEM_CLOCK * (unsigned long)60) /
(ulTime * (UI_PARAM_NUM_LINES + 1)));
//
// See if the edge time has become too small, meaning that the number of
// edges per second is too large.
//
if(ulTime < (SYSTEM_CLOCK / (MAX_EDGE_COUNT + EDGE_DELTA)))
{
//
// Edge counting mode should be used instead of edge timing mode.
//
HWREGBITW(&g_ulSpeedFlags, FLAG_COUNT_BIT) = 1;
//
// Disable the GPIO interrupt while using edge counting mode.
//
IntDisable(INT_GPIOC);
//
// Indicate that the first timing period should be skipped in edge
// count mode.
//
HWREGBITW(&g_ulSpeedFlags, FLAG_SKIP_BIT) = 1;
}
}
开发者ID:yangjunjiao,项目名称:Luminary-Micro-Library,代码行数:89,代码来源:speed_sense.c
示例9: ChipInfo_GetSupportedProtocol_BV
ProtocolBitVector_t
ChipInfo_GetSupportedProtocol_BV( void )
{
return ((ProtocolBitVector_t)( HWREG( PRCM_BASE + 0x1D4 ) & 0x0E ));
}
//*****************************************************************************
//
// ChipInfo_GetPackageType()
//
//*****************************************************************************
PackageType_t
ChipInfo_GetPackageType( void )
{
PackageType_t packType = (PackageType_t)((
HWREG( FCFG1_BASE + FCFG1_O_USER_ID ) &
FCFG1_USER_ID_PKG_M ) >>
FCFG1_USER_ID_PKG_S ) ;
if (( packType < PACKAGE_4x4 ) ||
( packType > PACKAGE_7x7_Q1 ) )
{
packType = PACKAGE_Unknown;
}
return ( packType );
}
//*****************************************************************************
//
// ChipInfo_GetChipFamily()
开发者ID:itavero,项目名称:openthread,代码行数:31,代码来源:chipinfo.c
示例10: vs_ssi_writewait
void vs_ssi_writewait(void)
{
while(HWREG(SSI0_BASE + SSI_O_SR) & SSI_SR_BSY); //busy?
return;
}
开发者ID:Bob4ik888,项目名称:WebRadio,代码行数:6,代码来源:io.c
示例11: main
//*****************************************************************************
//
// This is the main loop that runs the application.
//
//*****************************************************************************
int
main(void)
{
uint_fast32_t ui32LastTickCount;
bool bLastSuspend;
tRectangle sRect;
tContext sContext;
int_fast32_t i32CenterX;
//
// Enable lazy stacking for interrupt handlers. This allows floating-point
// instructions to be used within interrupt handlers, but at the expense of
// extra stack usage.
//
ROM_FPULazyStackingEnable();
//
// Set the clocking to run from the PLL at 50MHz.
//
ROM_SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
//
// Configure the required pins for USB operation.
//
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
ROM_GPIOPinConfigure(GPIO_PG4_USB0EPEN);
ROM_GPIOPinTypeUSBDigital(GPIO_PORTG_BASE, GPIO_PIN_4);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL);
ROM_GPIOPinTypeUSBAnalog(GPIO_PORTL_BASE, GPIO_PIN_6 | GPIO_PIN_7);
ROM_GPIOPinTypeUSBAnalog(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);
//
// Erratum workaround for silicon revision A1. VBUS must have pull-down.
//
if(CLASS_IS_BLIZZARD && REVISION_IS_A1)
{
HWREG(GPIO_PORTB_BASE + GPIO_O_PDR) |= GPIO_PIN_1;
}
//
// Enable the GPIO that is used for the on-board LED.
//
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
ROM_GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PIN_2);
ROM_GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_2, 0);
//
// Initialize the buttons driver
//
ButtonsInit();
//
// Initialize the display driver.
//
CFAL96x64x16Init();
//
// Initialize the graphics context and find the middle X coordinate.
//
GrContextInit(&sContext, &g_sCFAL96x64x16);
i32CenterX = GrContextDpyWidthGet(&sContext) / 2;
//
// Fill the top part of the screen with blue to create the banner.
//
sRect.i16XMin = 0;
sRect.i16YMin = 0;
sRect.i16XMax = GrContextDpyWidthGet(&sContext) - 1;
sRect.i16YMax = 9;
GrContextForegroundSet(&sContext, ClrDarkBlue);
GrRectFill(&sContext, &sRect);
//
// Change foreground for white text.
//
GrContextForegroundSet(&sContext, ClrWhite);
//
// Put the application name in the middle of the banner.
//
GrContextFontSet(&sContext, g_psFontFixed6x8);
GrStringDrawCentered(&sContext, "usb-dev-keyboard", -1, i32CenterX, 4, 0);
//
// Not configured initially.
//
g_bConnected = false;
g_bSuspended = false;
bLastSuspend = false;
//
// Initialize the USB stack for device mode.
//
//.........这里部分代码省略.........
开发者ID:PhamVanNhi,项目名称:ECE5770,代码行数:101,代码来源:usb_dev_keyboard.c
示例12: vOLEDTask
void vOLEDTask( void *pvParameters )
{
xOLEDMessage xMessage;
unsigned portLONG ulY, ulMaxY;
static portCHAR cMessage[ mainMAX_MSG_LEN ];
extern volatile unsigned portLONG ulMaxJitter;
unsigned portBASE_TYPE uxUnusedStackOnEntry, uxUnusedStackNow;
const unsigned portCHAR *pucImage;
/* Functions to access the OLED. The one used depends on the dev kit
being used. */
void ( *vOLEDInit )( unsigned portLONG ) = NULL;
void ( *vOLEDStringDraw )( const portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portCHAR ) = NULL;
void ( *vOLEDImageDraw )( const unsigned portCHAR *, unsigned portLONG, unsigned portLONG, unsigned portLONG, unsigned portLONG ) = NULL;
void ( *vOLEDClear )( void ) = NULL;
/* Just for demo purposes. */
uxUnusedStackOnEntry = uxTaskGetStackHighWaterMark( NULL );
/* Map the OLED access functions to the driver functions that are appropriate
for the evaluation kit being used. */
switch( HWREG( SYSCTL_DID1 ) & SYSCTL_DID1_PRTNO_MASK )
{
case SYSCTL_DID1_PRTNO_2965 :
vOLEDInit = OSRAM128x64x4Init;
vOLEDStringDraw = OSRAM128x64x4StringDraw;
vOLEDImageDraw = OSRAM128x64x4ImageDraw;
vOLEDClear = OSRAM128x64x4Clear;
ulMaxY = mainMAX_ROWS_64;
pucImage = pucBasicBitmap;
break;
case SYSCTL_DID1_PRTNO_1968 :
case SYSCTL_DID1_PRTNO_6965 :
case SYSCTL_DID1_PRTNO_8962 :
vOLEDInit = RIT128x96x4Init;
vOLEDStringDraw = RIT128x96x4StringDraw;
vOLEDImageDraw = RIT128x96x4ImageDraw;
vOLEDClear = RIT128x96x4Clear;
ulMaxY = mainMAX_ROWS_96;
pucImage = pucBasicBitmap;
break;
default :
vOLEDInit = vFormike128x128x16Init;
vOLEDStringDraw = vFormike128x128x16StringDraw;
vOLEDImageDraw = vFormike128x128x16ImageDraw;
vOLEDClear = vFormike128x128x16Clear;
ulMaxY = mainMAX_ROWS_128;
pucImage = pucGrLibBitmap;
break;
}
ulY = ulMaxY;
/* Initialise the OLED and display a startup message. */
vOLEDInit( ulSSI_FREQUENCY );
vOLEDStringDraw( "POWERED BY FreeRTOS", 0, 0, mainFULL_SCALE );
vOLEDImageDraw( pucImage, 0, mainCHARACTER_HEIGHT + 1, bmpBITMAP_WIDTH, bmpBITMAP_HEIGHT );
for( ;; )
{
/* Wait for a message to arrive that requires displaying. */
xQueueReceive( xOLEDQueue, &xMessage, portMAX_DELAY );
/* Write the message on the next available row. */
ulY += mainCHARACTER_HEIGHT;
if( ulY >= ulMaxY )
{
ulY = mainCHARACTER_HEIGHT;
vOLEDClear();
vOLEDStringDraw( pcWelcomeMessage, 0, 0, mainFULL_SCALE );
}
/* Display the message along with the maximum jitter time from the
high priority time test. */
sprintf( cMessage, "%s [%uns]", xMessage.pcMessage, ulMaxJitter * mainNS_PER_CLOCK );
vOLEDStringDraw( cMessage, 0, ulY, mainFULL_SCALE );
}
}
开发者ID:selste,项目名称:openDrive,代码行数:80,代码来源:main.c
示例13: nrf24l01_set_csn
//clears the pin on the host microcontroller that is attached to the 24l01's CSN pin
void nrf24l01_set_csn()
{
// nrf24l01_CSN_IOREGISTER |= nrf24l01_CSN_PINMASK;
HWREG(nrf24l01_CSN_IOREGISTER + (GPIO_O_DATA + (nrf24l01_CSN_PIN << 2))) = nrf24l01_CSN_PIN;
}
开发者ID:yguo89,项目名称:CodeBrain,代码行数:6,代码来源:nRF24L01.c
示例14: nrf24l01_clear_csn
//sets the pin on the host microcontroller that is attached to the 24l01's CSN pin
void nrf24l01_clear_csn()
{
// nrf24l01_CSN_IOREGISTER &= ~nrf24l01_CSN_PINMASK;
HWREG(nrf24l01_CSN_IOREGISTER + (GPIO_O_DATA + (nrf24l01_CSN_PIN << 2))) = 0;
}
开发者ID:yguo89,项目名称:CodeBrain,代码行数:6,代码来源:nRF24L01.c
示例15: CRYPTOAesLoadKey
//*****************************************************************************
//
//! Write the key into the Key Ram.
//
//*****************************************************************************
uint32_t
CRYPTOAesLoadKey(uint32_t *pui32AesKey,
uint32_t ui32KeyLocation)
{
//
// Check the arguments.
//
ASSERT((ui32KeyLocation == CRYPTO_KEY_AREA_0) |
(ui32KeyLocation == CRYPTO_KEY_AREA_1) |
(ui32KeyLocation == CRYPTO_KEY_AREA_2) |
(ui32KeyLocation == CRYPTO_KEY_AREA_3) |
(ui32KeyLocation == CRYPTO_KEY_AREA_4) |
(ui32KeyLocation == CRYPTO_KEY_AREA_5) |
(ui32KeyLocation == CRYPTO_KEY_AREA_6) |
(ui32KeyLocation == CRYPTO_KEY_AREA_7));
//
// Set current operating state of the Crypto module.
//
g_ui32CurrentAesOp = CRYPTO_AES_KEYL0AD;
//
// Disable the external interrupt to stop the interrupt form propagating
// from the module to the CM3.
//
IntDisable(INT_CRYPTO);
//
// Enable internal interrupts.
//
HWREG(CRYPTO_BASE + CRYPTO_O_IRQTYPE) = CRYPTO_INT_LEVEL;
HWREG(CRYPTO_BASE + CRYPTO_O_IRQEN) = CRYPTO_IRQEN_DMA_IN_DONE |
CRYPTO_IRQEN_RESULT_AVAIL;
//
// Configure master control module.
//
HWREG(CRYPTO_BASE + CRYPTO_O_ALGSEL) &= (~CRYPTO_ALGSEL_KEY_STORE);
HWREG(CRYPTO_BASE + CRYPTO_O_ALGSEL) |= CRYPTO_ALGSEL_KEY_STORE;
//
// Clear any outstanding events.
//
HWREG(CRYPTO_BASE + CRYPTO_O_IRQCLR) = (CRYPTO_IRQCLR_DMA_IN_DONE |
CRYPTO_IRQCLR_RESULT_AVAIL);
//
// Configure key store module for 128 bit operation.
//
HWREG(CRYPTO_BASE + CRYPTO_O_KEYSIZE) &= ~CRYPTO_KEYSIZE_SIZE_M;
HWREG(CRYPTO_BASE + CRYPTO_O_KEYSIZE) |= KEY_STORE_SIZE_128;
//
// Enable keys to write (e.g. Key 0).
//
HWREG(CRYPTO_BASE + CRYPTO_O_KEYWRITEAREA) = (0x00000001 << ui32KeyLocation);
//
// Enable Crypto DMA channel 0.
//
HWREG(CRYPTO_BASE + CRYPTO_O_DMACH0CTL) |= CRYPTO_DMACH0CTL_EN;
//
// Base address of the key in ext. memory.
//
HWREG(CRYPTO_BASE + CRYPTO_O_DMACH0EXTADDR) = (uint32_t)pui32AesKey;
//
// Total key length in bytes (e.g. 16 for 1 x 128-bit key).
// Writing the length of the key enables the DMA operation.
//
HWREG(CRYPTO_BASE + CRYPTO_O_DMACH0LEN) = KEY_BLENGTH;
//
// Wait for the DMA operation to complete.
//
do
{
CPUdelay(1);
}
while(!(HWREG(CRYPTO_BASE + CRYPTO_O_IRQSTAT) & 0x00000001));
//
// Check for errors in DMA and key store.
//
if((HWREG(CRYPTO_BASE + CRYPTO_O_IRQSTAT) &
(CRYPTO_IRQSTAT_DMA_BUS_ERR |
CRYPTO_IRQSTAT_KEY_ST_WR_ERR)) == 0)
{
//
// Acknowledge/clear the interrupt and disable the master control.
//
HWREG(CRYPTO_BASE + CRYPTO_O_IRQCLR) = (CRYPTO_IRQCLR_DMA_IN_DONE |
CRYPTO_IRQCLR_RESULT_AVAIL);
HWREG(CRYPTO_BASE + CRYPTO_O_ALGSEL) = 0x00000000;
//.........这里部分代码省略.........
开发者ID:DemonTu,项目名称:ALL_SmartBatterySwitch_CC2640,代码行数:101,代码来源:crypto.c
示例16: main
//*****************************************************************************
//
// Demonstrate the use of the boot loader.
//
//*****************************************************************************
int
main(void)
{
tRectangle sRect;
//
// Set the clocking to run directly from the crystal.
//
ROM_SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_8MHZ);
//
// If running on Rev A0 silicon, write the FMPRE[2-3]/FMPPE[2-3] registers
// to zero. This is a workaround to allow the mass erase in the ROM-based
// boot loader to succeed if a locked device recovery has been performed.
//
if(REVISION_IS_A0)
{
HWREG(FLASH_FMPPE2) = 0;
HWREG(FLASH_FMPPE3) = 0;
HWREG(FLASH_FMPRE2) = 0;
HWREG(FLASH_FMPRE3) = 0;
}
//
// Enable the UART and GPIO modules.
//
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
//
// Make the UART pins be peripheral controlled.
//
ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
//
// Configure the UART for 115,200, 8-N-1 operation.
//
ROM_UARTConfigSetExpClk(UART0_BASE, ROM_SysCtlClockGet(), 115200,
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
//
// Initialize the display driver.
//
Formike128x128x16Init();
//
// Turn on the backlight.
//
Formike128x128x16BacklightOn();
//
// Initialize the graphics context.
//
GrContextInit(&g_sContext, &g_sFormike128x128x16);
//
// Fill the top 15 rows of the screen with blue to create the banner.
//
sRect.sXMin = 0;
sRect.sYMin = 0;
sRect.sXMax = GrContextDpyWidthGet(&g_sContext) - 1;
sRect.sYMax = 14;
GrContextForegroundSet(&g_sContext, ClrDarkBlue);
GrRectFill(&g_sContext, &sRect);
//
// Put a white box around the banner.
//
GrContextForegroundSet(&g_sContext, ClrWhite);
GrRectDraw(&g_sContext, &sRect);
//
// Put the application name in the middle of the banner.
//
GrContextFontSet(&g_sContext, &g_sFontFixed6x8);
GrStringDrawCentered(&g_sContext, "boot_demo1", -1,
GrContextDpyWidthGet(&g_sContext) / 2, 7, 0);
//
// Indicate what is happening.
//
GrStringDrawCentered(&g_sContext, "The boot loader is", -1,
GrContextDpyWidthGet(&g_sContext) / 2, 24, 0);
GrStringDrawCentered(&g_sContext, "now running and", -1,
GrContextDpyWidthGet(&g_sContext) / 2, 32, 0);
GrStringDrawCentered(&g_sContext, "awaiting an update", -1,
GrContextDpyWidthGet(&g_sContext) / 2, 40, 0);
GrStringDrawCentered(&g_sContext, "over UART0 at", -1,
GrContextDpyWidthGet(&g_sContext) / 2, 48, 0);
GrStringDrawCentered(&g_sContext, "115200, 8-N-1.", -1,
GrContextDpyWidthGet(&g_sContext) / 2, 56, 0);
//
//.........这里部分代码省略.........
开发者ID:fejerson108,项目名称:Stellarisware,代码行数:101,代码来源:boot_demo1.c
示例17: GPIOBIntHandler
//*****************************************************************************
//
// The interrupt handler for the PB4 pin interrupt. When triggered, this will
// toggle the JTAG pins between JTAG and GPIO mode.
//
//*****************************************************************************
void
GPIOBIntHandler(void)
{
//
// Clear the GPIO interrupt.
//
ROM_GPIOPinIntClear(GPIO_PORTB_BASE, GPIO_PIN_4);
//
// Toggle the pin mode.
//
g_ulMode ^= 1;
//
// See if the pins should be in JTAG or GPIO mode.
//
if(g_ulMode == 0)
{
//
// Change PC0-3 into hardware (i.e. JTAG) pins.
//
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x01;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x01;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x02;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x02;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x04;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x04;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x08;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x08;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x00;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = 0;
//
// Turn on the LED to indicate that the pins are in JTAG mode.
//
ROM_GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_0, GPIO_PIN_0);
}
else
{
//
// Change PC0-3 into GPIO inputs.
//
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x01;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xfe;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x02;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xfd;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x04;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xfb;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x08;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xf7;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x00;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = 0;
ROM_GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, (GPIO_PIN_0 | GPIO_PIN_1 |
GPIO_PIN_2 | GPIO_PIN_3));
//
// Turn off the LED to indicate that the pins are in GPIO mode.
//
ROM_GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_0, 0);
}
}
开发者ID:Razofiter,项目名称:Luminary-Micro-Library,代码行数:77,代码来源:gpio_jtag.c
示例18: SysTickMode_DeepSleepCoarse
static inline void SysTickMode_DeepSleepCoarse(void)
{
HWREG(NVIC_ST_RELOAD) = DEEPSLEEP_CPU - 1;
HWREG(NVIC_ST_CURRENT) = 0; // Clear SysTick
}
开发者ID:RickKimball,项目名称:tivac-core,代码行数:5,代码来源:wiring.c
示例19: GPMCClkConfig
void GPMCClkConfig(void)
{
HWREG(SOC_PRCM_REGS + CM_PER_L3S_CLKSTCTRL) |=
CM_PER_L3S_CLKSTCTRL_CLKTRCTRL_SW_WKUP;
while((HWREG(SOC_PRCM_REGS + CM_PER_L3S_CLKSTCTRL) &
CM_PER_L3S_CLKSTCTRL_CLKTRCTRL) != CM_PER_L3S_CLKSTCTRL_CLKTRCTRL_SW_WKUP);
HWREG(SOC_PRCM_REGS + CM_PER_L3_CLKSTCTRL) |=
CM_PER_L3_CLKSTCTRL_CLKTRCTRL_SW_WKUP;
while((HWREG(SOC_PRCM_REGS + CM_PER_L3_CLKSTCTRL) &
CM_PER_L3_CLKSTCTRL_CLKTRCTRL) != CM_PER_L3_CLKSTCTRL_CLKTRCTRL_SW_WKUP);
HWREG(SOC_PRCM_REGS + CM_PER_L3_INSTR_CLKCTRL) |=
CM_PER_L3_INSTR_CLKCTRL_MODULEMODE_ENABLE;
while((HWREG(SOC_PRCM_REGS + CM_PER_L3_INSTR_CLKCTRL) &
CM_PER_L3_INSTR_CLKCTRL_MODULEMODE) !=
CM_PER_L3_INSTR_CLKCTRL_MODULEMODE_ENABLE);
HWREG(SOC_PRCM_REGS + CM_PER_L3_CLKCTRL) |=
CM_PER_L3_CLKCTRL_MODULEMODE_ENABLE;
while((HWREG(SOC_PRCM_REGS + CM_PER_L3_CLKCTRL) &
CM_PER_L3_CLKCTRL_MODULEMODE) != CM_PER_L3_CLKCTRL_MODULEMODE_ENABLE);
HWREG(SOC_PRCM_REGS + CM_PER_OCPWP_L3_CLKSTCTRL) |=
CM_PER_OCPWP_L3_CLKSTCTRL_CLKTRCTRL_SW_WKUP;
while((HWREG(SOC_PRCM_REGS + CM_PER_OCPWP_L3_CLKSTCTRL) &
CM_PER_OCPWP_L3_CLKSTCTRL_CLKTRCTRL) !=
CM_PER_OCPWP_L3_CLKSTCTRL_CLKTRCTRL_SW_WKUP);
HWREG(SOC_PRCM_REGS + CM_PER_GPMC_CLKCTRL) |=
CM_PER_GPMC_CLKCTRL_MODULEMODE_ENABLE;
while((HWREG(SOC_PRCM_REGS + CM_PER_GPMC_CLKCTRL) &
CM_PER_GPMC_CLKCTRL_MODULEMODE) != CM_PER_GPMC_CLKCTRL_MODULEMODE_ENABLE);
HWREG(SOC_PRCM_REGS + CM_PER_ELM_CLKCTRL) |=
CM_PER_ELM_CLKCTRL_MODULEMODE_ENABLE;
while((HWREG(SOC_PRCM_REGS + CM_PER_ELM_CLKCTRL) &
CM_PER_ELM_CLKCTRL_MODULEMODE) != CM_PER_ELM_CLKCTRL_MODULEMODE_ENABLE);
while(!(HWREG(SOC_PRCM_REGS + CM_PER_L3S_CLKSTCTRL) &
CM_PER_L3S_CLKSTCTRL_CLKACTIVITY_L3S_GCLK));
while(!(HWREG(SOC_PRCM_REGS + CM_PER_L3_CLKSTCTRL) &
CM_PER_L3_CLKSTCTRL_CLKACTIVITY_L3_GCLK));
}
开发者ID:KonstantinVoip,项目名称:starterwarefree-code,代码行数:54,代码来源:nand.c
示例20: GPIOGIntHandler
//*****************************************************************************
//
// The interrupt handler for the PG7 pin interrupt. When triggered, this will
// toggle the JTAG pins between JTAG and GPIO mode.
//
//*****************************************************************************
void
GPIOGIntHandler(void)
{
//
// Clear the GPIO interrupt.
//
GPIOPinIntClear(GPIO_PORTG_BASE, GPIO_PIN_7);
//
// Toggle the pin mode.
//
g_ulMode ^= 1;
//
// See if the pins should be in JTAG or GPIO mode.
//
if(g_ulMode == 0)
{
//
// Change PB7 and PC0-3 into hardware (i.e. JTAG) pins.
//
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x80;
HWREG(GPIO_PORTB_BASE + GPIO_O_AFSEL) |= 0x80;
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x00;
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = 0;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x01;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x01;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x02;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x02;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x04;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x04;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x08;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) |= 0x08;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x00;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = 0;
HWREG(GPIO_PORTB_BASE + GPIO_O_DEN) |= 0x80;
HWREG(GPIO_PORTC_BASE + GPIO_O_DEN) |= 0x0f;
}
else
{
//
// Change PB7 and PC0-3 into GPIO inputs.
//
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x80;
HWREG(GPIO_PORTB_BASE + GPIO_O_AFSEL) &= ~0x7f;
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x00;
HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = 0;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x01;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= ~0xfe;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x02;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xfd;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x04;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xfb;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x08;
HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xf7;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x00;
HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = 0;
HWREG(GPIO_PORTB_BASE + GPIO_O_DEN) &= ~0x80;
HWREG(GPIO_PORTC_BASE + GPIO_O_DEN) &= ~0x0f;
GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_7);
GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, (GPIO_PIN_0 | GPIO_PIN_1 |
GPIO_PIN_2 | GPIO_PIN_3));
}
}
开发者ID:hakkinen86,项目名称:Luminary-Micro-Library,代码行数:84,代码来源:gpio_jtag.c
注:本文中的HWREG函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论