//***************************************************************************** void PinMuxConfig(void) { // // Enable Peripheral Clocks // PRCMPeripheralClkEnable(PRCM_UARTA0, PRCM_RUN_MODE_CLK); PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK); PRCMPeripheralClkEnable(PRCM_GPIOA2, PRCM_RUN_MODE_CLK); // // Configure PIN_55 for UART0 UART0_TX // PinTypeUART(PIN_55, PIN_MODE_3); // // Configure PIN_57 for UART0 UART0_RX // PinTypeUART(PIN_57, PIN_MODE_3); // // Configure PIN_04 for GPIO Input // PinTypeGPIO(PIN_04, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x20, GPIO_DIR_MODE_IN); // // Configure PIN_15 for GPIO Input // PinTypeGPIO(PIN_15, PIN_MODE_0, false); GPIODirModeSet(GPIOA2_BASE, 0x40, GPIO_DIR_MODE_IN); }
//***************************************************************************** void PinMuxConfig(void) { // // Enable Peripheral Clocks // PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK); // // Configure PIN_64 for GPIO Input // PinTypeGPIO(PIN_64, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x2, GPIO_DIR_MODE_IN); // // Configure PIN_01 for GPIO Input // PinTypeGPIO(PIN_01, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x4, GPIO_DIR_MODE_IN); // // Configure PIN_02 for GPIO Input // PinTypeGPIO(PIN_02, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x8, GPIO_DIR_MODE_IN); }
//***************************************************************************** void PinMuxConfig(void) { // // Enable Peripheral Clocks // PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK); PRCMPeripheralClkEnable(PRCM_UARTA0, PRCM_RUN_MODE_CLK); PRCMPeripheralClkEnable(PRCM_UARTA1, PRCM_RUN_MODE_CLK); // // Configure PIN_64 for GPIOOutput // PinTypeGPIO(PIN_64, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x2, GPIO_DIR_MODE_OUT); // // Configure PIN_01 for GPIOOutput // PinTypeGPIO(PIN_01, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x4, GPIO_DIR_MODE_OUT); // // Configure PIN_02 for GPIOOutput // PinTypeGPIO(PIN_02, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x8, GPIO_DIR_MODE_OUT); // // Configure PIN_03 for UART0 UART0_TX // PinTypeUART(PIN_03, PIN_MODE_7); // // Configure PIN_04 for UART0 UART0_RX // PinTypeUART(PIN_04, PIN_MODE_7); // // Configure PIN_58 for UART1 UART1_TX // PinTypeUART(PIN_58, PIN_MODE_6); // // Configure PIN_57 for UART1 UART1_RX // PinTypeUART(PIN_57, PIN_MODE_6); }
void init_SD_card(void) { // // Enable MMCHS // PRCMPeripheralClkEnable(PRCM_SDHOST, PRCM_RUN_MODE_CLK); // // Reset MMCHS // PRCMPeripheralReset(PRCM_SDHOST); // // Configure MMCHS // SDHostInit(SDHOST_BASE); // // Configure card clock // SDHostSetExpClk(SDHOST_BASE, PRCMPeripheralClockGet(PRCM_SDHOST), 15000000); }
/*! \brief open spi communication port to be used for communicating with a SimpleLink device Given an interface name and option flags, this function opens the spi communication port and creates a file descriptor. This file descriptor can be used afterwards to read and write data from and to this specific spi channel. The SPI speed, clock polarity, clock phase, chip select and all other attributes are all set to hardcoded values in this function. \param ifName - points to the interface name/path. The interface name is an optional attributes that the simple link driver receives on opening the device. in systems that the spi channel is not implemented as part of the os device drivers, this parameter could be NULL. \param flags - option flags \return upon successful completion, the function shall open the spi channel and return a non-negative integer representing the file descriptor. Otherwise, -1 shall be returned \sa spi_Close , spi_Read , spi_Write \note \warning */ Fd_t spi_Open(char *ifName, unsigned long flags) { unsigned long ulBase; //NWP master interface ulBase = LSPI_BASE; //Enable MCSPIA2 PRCMPeripheralClkEnable(PRCM_LSPI,PRCM_RUN_MODE_CLK|PRCM_SLP_MODE_CLK); //Disable Chip Select SPICSDisable(ulBase); //Disable SPI Channel SPIDisable(ulBase); // Reset SPI SPIReset(ulBase); // // Configure SPI interface // SPIConfigSetExpClk(ulBase,PRCMPeripheralClockGet(PRCM_LSPI), SPI_IF_BIT_RATE,SPI_MODE_MASTER,SPI_SUB_MODE_0, (SPI_SW_CTRL_CS | SPI_4PIN_MODE | SPI_TURBO_OFF | SPI_CS_ACTIVEHIGH | SPI_WL_32)); if(PRCMPeripheralStatusGet(PRCM_UDMA)) { g_ucDMAEnabled = (HWREG(UDMA_BASE + UDMA_O_CTLBASE) != 0x0) ? 1 : 0; } else { g_ucDMAEnabled = 0; } #ifdef SL_CPU_MODE g_ucDMAEnabled = 0; #endif if(g_ucDMAEnabled) { memset(g_ucDinDout,0xFF,sizeof(g_ucDinDout)); //g_ucDout[0]=0xFF; //Simplelink_UDMAInit(); // Set DMA channel cc_UDMAChannelSelect(UDMA_CH12_LSPI_RX); cc_UDMAChannelSelect(UDMA_CH13_LSPI_TX); SPIFIFOEnable(ulBase,SPI_RX_FIFO); SPIFIFOEnable(ulBase,SPI_TX_FIFO); SPIDmaEnable(ulBase,SPI_RX_DMA); SPIDmaEnable(ulBase,SPI_TX_DMA); SPIFIFOLevelSet(ulBase,1,1); #if defined(SL_PLATFORM_MULTI_THREADED) osi_InterruptRegister(INT_LSPI, (P_OSI_INTR_ENTRY)DmaSpiSwIntHandler,INT_PRIORITY_LVL_1); SPIIntEnable(ulBase,SPI_INT_EOW); osi_MsgQCreate(&DMAMsgQ,"DMAQueue",sizeof(int),1); #else IntRegister(INT_LSPI,(void(*)(void))DmaSpiSwIntHandler); IntPrioritySet(INT_LSPI, INT_PRIORITY_LVL_1); IntEnable(INT_LSPI); SPIIntEnable(ulBase,SPI_INT_EOW); g_cDummy = 0x0; #endif } SPIEnable(ulBase); g_SpiFd = 1; return g_SpiFd; }
int ComputeSHA(const char *sourceFile, uint8_t *resultHash) { long sfileHandle = -1; unsigned long sToken = 0; long retVal = 0; unsigned long bytesRead = 0; unsigned long readsize = 0; uint8_t buffer[BLOCKSIZE]; SlFsFileInfo_t sFileInfo; UART_PRINT("\r\nStarted comuting hash\r\n"); //Enable MD5SHA module PRCMPeripheralClkEnable(PRCM_DTHE, PRCM_RUN_MODE_CLK); MAP_SHAMD5IntRegister(SHAMD5_BASE, SHAMD5IntHandler); //reset modul PRCMPeripheralReset(PRCM_DTHE); //clear flags g_bContextReadyFlag = false; g_bInputReadyFlag = false; //Enable Interrupts SHAMD5IntEnable(SHAMD5_BASE, SHAMD5_INT_CONTEXT_READY | SHAMD5_INT_PARTHASH_READY | SHAMD5_INT_INPUT_READY | SHAMD5_INT_OUTPUT_READY); //wait for context ready flag. while (!g_bContextReadyFlag) ; //Configure SHA/MD5 module SHAMD5ConfigSet(SHAMD5_BASE, SHAMD5_ALGO_SHA1); // get file size retVal = sl_FsGetInfo((unsigned char *) sourceFile, sToken, &sFileInfo); if (retVal < 0) { // File Doesn't exit create a new of 45 KB file UART_PRINT("Error during opening the source file\r\n"); return -1; } // open the source file for reading retVal = sl_FsOpen((unsigned char *) sourceFile, FS_MODE_OPEN_READ, &sToken, &sfileHandle); if (retVal < 0) { UART_PRINT("Error during opening the source file\r\n"); return -1; } SHAMD5DataLengthSet(SHAMD5_BASE, (uint32_t) sFileInfo.FileLen); // Copy the files from temporary file to original file // If user file has checksum which can be used to verify the temporary // file then file should be verified before copying while (bytesRead < sFileInfo.FileLen) { if ((sFileInfo.FileLen - bytesRead) > BLOCKSIZE) readsize = BLOCKSIZE; else readsize = (sFileInfo.FileLen - bytesRead); memset(buffer, 0, sizeof(buffer)); retVal = sl_FsRead(sfileHandle, bytesRead, (unsigned char *) buffer, readsize); if (retVal < 0) { // Error close the file and delete the temporary file retVal = sl_FsClose(sfileHandle, 0, 0, 0); UART_PRINT("Error during reading the file\r\n"); return -1; } SHAMD5DataWrite(SHAMD5_BASE, buffer); bytesRead += readsize; } // Close the opened files retVal = sl_FsClose(sfileHandle, 0, 0, 0); if (retVal < 0) { // Error close the file and delete the temporary file UART_PRINT("Error during close the file\r\n"); return -1; } UART_PRINT("Hash successfully\r\n"); SHAMD5ResultRead(SHAMD5_BASE, resultHash); return 0; }
//***************************************************************************** void PinMuxConfig(void) { // // Enable Peripheral Clocks // PRCMPeripheralClkEnable(PRCM_GPIOA0, PRCM_RUN_MODE_CLK); PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK); PRCMPeripheralClkEnable(PRCM_GPIOA2, PRCM_RUN_MODE_CLK); PRCMPeripheralClkEnable(PRCM_GPIOA3, PRCM_RUN_MODE_CLK); //PRCMPeripheralClkEnable(PRCM_GPIOA4, PRCM_RUN_MODE_CLK); // // Configure PIN_50 for GPIO Input // PinTypeGPIO(PIN_50, PIN_MODE_0, false); GPIODirModeSet(GPIOA0_BASE, 0x1, GPIO_DIR_MODE_IN); // // Configure PIN_55 for GPIO Input // PinTypeGPIO(PIN_55, PIN_MODE_0, false); GPIODirModeSet(GPIOA0_BASE, 0x2, GPIO_DIR_MODE_IN); // // Configure PIN_57 for GPIO Input // PinTypeGPIO(PIN_57, PIN_MODE_0, false); GPIODirModeSet(GPIOA0_BASE, 0x4, GPIO_DIR_MODE_IN); // // Configure PIN_58 for GPIO Input // PinTypeGPIO(PIN_58, PIN_MODE_0, false); GPIODirModeSet(GPIOA0_BASE, 0x8, GPIO_DIR_MODE_IN); // // Configure PIN_59 for GPIO Input // PinTypeGPIO(PIN_59, PIN_MODE_0, false); GPIODirModeSet(GPIOA0_BASE, 0x10, GPIO_DIR_MODE_IN); // // Configure PIN_60 for GPIO Input // PinTypeGPIO(PIN_60, PIN_MODE_0, false); GPIODirModeSet(GPIOA0_BASE, 0x20, GPIO_DIR_MODE_IN); // // Configure PIN_61 for GPIO Input // PinTypeGPIO(PIN_61, PIN_MODE_0, false); GPIODirModeSet(GPIOA0_BASE, 0x40, GPIO_DIR_MODE_IN); // // Configure PIN_62 for GPIO Output // PinTypeGPIO(PIN_62, PIN_MODE_0, false); GPIODirModeSet(GPIOA0_BASE, 0x80, GPIO_DIR_MODE_OUT); // // Configure PIN_63 for GPIO Input // PinTypeGPIO(PIN_63, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x1, GPIO_DIR_MODE_IN); // // Configure PIN_64 for GPIO Input // PinTypeGPIO(PIN_64, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x2, GPIO_DIR_MODE_IN); // // Configure PIN_01 for GPIO Input // PinTypeGPIO(PIN_01, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x4, GPIO_DIR_MODE_IN); // // Configure PIN_02 for GPIO Input // PinTypeGPIO(PIN_02, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x8, GPIO_DIR_MODE_IN); // // Configure PIN_03 for GPIO Input // PinTypeGPIO(PIN_03, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x10, GPIO_DIR_MODE_IN); // // Configure PIN_04 for GPIO Input // PinTypeGPIO(PIN_04, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x20, GPIO_DIR_MODE_IN); // // Configure PIN_05 for GPIO Input // PinTypeGPIO(PIN_05, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x40, GPIO_DIR_MODE_IN); // // Configure PIN_06 for GPIO Input // PinTypeGPIO(PIN_06, PIN_MODE_0, false); GPIODirModeSet(GPIOA1_BASE, 0x80, GPIO_DIR_MODE_IN); // // Configure PIN_07 for GPIO Input // PinTypeGPIO(PIN_07, PIN_MODE_0, false); GPIODirModeSet(GPIOA2_BASE, 0x1, GPIO_DIR_MODE_IN); // // Configure PIN_08 for GPIO Input // PinTypeGPIO(PIN_08, PIN_MODE_0, false); GPIODirModeSet(GPIOA2_BASE, 0x2, GPIO_DIR_MODE_IN); // // Configure PIN_15 for GPIO Input // PinTypeGPIO(PIN_15, PIN_MODE_0, false); GPIODirModeSet(GPIOA2_BASE, 0x40, GPIO_DIR_MODE_IN); // // Configure PIN_16 for GPIO Input // PinTypeGPIO(PIN_16, PIN_MODE_0, false); GPIODirModeSet(GPIOA2_BASE, 0x80, GPIO_DIR_MODE_IN); // // Configure PIN_17 for GPIO Input // PinTypeGPIO(PIN_17, PIN_MODE_0, false); GPIODirModeSet(GPIOA3_BASE, 0x1, GPIO_DIR_MODE_IN); // // Configure PIN_18 for GPIO Input // PinTypeGPIO(PIN_18, PIN_MODE_0, false); GPIODirModeSet(GPIOA3_BASE, 0x10, GPIO_DIR_MODE_IN); // // Configure PIN_20 for GPIO Input // PinTypeGPIO(PIN_20, PIN_MODE_0, false); GPIODirModeSet(GPIOA3_BASE, 0x20, GPIO_DIR_MODE_IN); // // Configure PIN_21 for GPIO Input // PinTypeGPIO(PIN_21, PIN_MODE_0, false); GPIODirModeSet(GPIOA3_BASE, 0x2, GPIO_DIR_MODE_IN); // // Configure PIN_53 for GPIO Input // PinTypeGPIO(PIN_53, PIN_MODE_0, false); GPIODirModeSet(GPIOA3_BASE, 0x40, GPIO_DIR_MODE_IN); // // Configure PIN_45 for GPIO Input // PinTypeGPIO(PIN_45, PIN_MODE_0, false); GPIODirModeSet(GPIOA3_BASE, 0x80, GPIO_DIR_MODE_IN); // // Configure PIN_52 for GPIO Input // //PinTypeGPIO(PIN_52, PIN_MODE_0, false); //GPIODirModeSet(GPIOA4_BASE, 0x1, GPIO_DIR_MODE_IN); }