at91rm3400 ATMEL Corporation, at91rm3400 Datasheet - Page 68

no-image

at91rm3400

Manufacturer Part Number
at91rm3400
Description
Atmel Advanced At91 Arm Microcontroller
Manufacturer
ATMEL Corporation
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
at91rm3400-AU-002
Manufacturer:
Atmel
Quantity:
10 000
Using the Service
68
AT91RM3400
The following steps show how to initialize and use the Xmodem Service in an application:
Variables definitions:
AT91S_RomBoot const *pAT91; // struct containing Openservice functions
AT91S_SBuffer
AT91S_SvcXmodem svcXmodem; // Xmodem service structure allocation
AT91S_Pipe
AT91S_CtlTempo
AT91PS_Buffer pXmBuffer; // Pointer on a buffer structure
AT91PS_SvcComm pSvcXmodem; // Pointer on a Media Structure
Initialisations
// Call Open methods:
pAT91 = AT91C_ROM_BOOT_ADDRESS;
// OpenCtlTempo on the system timer
pAT91->OpenCtlTempo(&ctlTempo, (void *) &(pAT91->SYSTIMER_DESC));
ctlTempo.CtlTempoStart((void *) &(pAT91->SYSTIMER_DESC));
// Xmodem buffer initialisation
pXmBuffer
pSvcXmodem = pAT91->OpenSvcXmodem(&svcXmodem, AT91C_BASE_DBGU, &ctlTempo);
// Open communication pipe on the xmodem service
pAT91->OpenPipe(&xmodemPipe, pSvcXmodem, pXmBuffer);
// Init the DBGU peripheral
// Open PIO for DBGU
// Initialize the Interrupt for System Timer and DBGU (shared interrupt)
// Initialize the Interrupt Source 1 for SysTimer and DBGU
xmodemPipe.Read(&xmodemPipe, (char *) BASE_LOAD_ADDRESS, MEMORY_SIZE,
XmodemProtocol, (void *) BASE_LOAD_ADDRESS);
AT91F_DBGU_CfgPIO();
// Configure DBGU
AT91F_US_Configure (
// Enable Transmitter
AT91F_US_EnableTx((AT91PS_USART) AT91C_BASE_DBGU);
// Enable Receiver
AT91F_US_EnableRx((AT91PS_USART) AT91C_BASE_DBGU);
AT91F_AIC_ConfigureIt(AT91C_BASE_AIC,
// Enable SysTimer and DBGU interrupt
AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_SYS);
(AT91PS_USART) AT91C_BASE_DBGU,
MCK,
AT91C_US_ASYNC_MODE,
BAUDRATE ,
0);
AT91C_ID_SYS,
AT91C_AIC_PRIOR_HIGHEST,
AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE,
AT91F_ASM_ST_DBGU_Handler);
= pAT91->OpenSBuffer(&sXmBuffer);
sXmBuffer; // Xmodem Buffer allocation
xmodemPipe;// xmodem pipe communication struct
ctlTempo; // Tempo struct
// Master Clock
// timeguard to be programmed
// baudrate to be programmed
// mode Register to be programmed
// DBGU base address
1790A–ATARM–11/03

Related parts for at91rm3400