Bootload from SD card to sector 0, and jump to sector 24 where new firmware resides

Dependencies:   FatFS mbed

Fork of Panel-Controller-Bootloader by Emma

Committer:
bonchenko
Date:
Tue Apr 21 09:30:11 2015 +0000
Revision:
0:c3a652eff606
Able to remove flash content, write new firmware from sd card, and jump to that new firmware. But its still not running completely

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bonchenko 0:c3a652eff606 1 #include "usart.h"
bonchenko 0:c3a652eff606 2
bonchenko 0:c3a652eff606 3 void USART_Initialise(void)
bonchenko 0:c3a652eff606 4 {
bonchenko 0:c3a652eff606 5 USART_InitTypeDef usartConfig;
bonchenko 0:c3a652eff606 6
bonchenko 0:c3a652eff606 7 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
bonchenko 0:c3a652eff606 8 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
bonchenko 0:c3a652eff606 9 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
bonchenko 0:c3a652eff606 10 USART_Cmd(USART1, ENABLE);
bonchenko 0:c3a652eff606 11
bonchenko 0:c3a652eff606 12 usartConfig.USART_BaudRate = 115200;
bonchenko 0:c3a652eff606 13 usartConfig.USART_WordLength = USART_WordLength_8b;
bonchenko 0:c3a652eff606 14 usartConfig.USART_StopBits = USART_StopBits_1;
bonchenko 0:c3a652eff606 15 usartConfig.USART_Parity = USART_Parity_No;
bonchenko 0:c3a652eff606 16 usartConfig.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
bonchenko 0:c3a652eff606 17 usartConfig.USART_HardwareFlowControl =
bonchenko 0:c3a652eff606 18 USART_HardwareFlowControl_None;
bonchenko 0:c3a652eff606 19 USART_Init(USART1, &usartConfig);
bonchenko 0:c3a652eff606 20
bonchenko 0:c3a652eff606 21 GPIO_InitTypeDef gpioConfig;
bonchenko 0:c3a652eff606 22
bonchenko 0:c3a652eff606 23 //PA9 = USART1.TX => Alternative Function Output
bonchenko 0:c3a652eff606 24 gpioConfig.GPIO_Mode = GPIO_Mode_AF_PP;
bonchenko 0:c3a652eff606 25 gpioConfig.GPIO_Pin = GPIO_Pin_9;
bonchenko 0:c3a652eff606 26 gpioConfig.GPIO_Speed = GPIO_Speed_2MHz;
bonchenko 0:c3a652eff606 27 GPIO_Init(GPIOA, &gpioConfig);
bonchenko 0:c3a652eff606 28
bonchenko 0:c3a652eff606 29 //PA10 = USART1.RX => Input
bonchenko 0:c3a652eff606 30 gpioConfig.GPIO_Mode = GPIO_Mode_IN_FLOATING;
bonchenko 0:c3a652eff606 31 gpioConfig.GPIO_Pin = GPIO_Pin_10;
bonchenko 0:c3a652eff606 32 GPIO_Init(GPIOA, &gpioConfig);
bonchenko 0:c3a652eff606 33 }
bonchenko 0:c3a652eff606 34
bonchenko 0:c3a652eff606 35 void USART_SendString(char* message)
bonchenko 0:c3a652eff606 36 {
bonchenko 0:c3a652eff606 37 while(*message)
bonchenko 0:c3a652eff606 38 {
bonchenko 0:c3a652eff606 39 while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
bonchenko 0:c3a652eff606 40 USART_SendData(USART1, *message++);
bonchenko 0:c3a652eff606 41 }
bonchenko 0:c3a652eff606 42 }
bonchenko 0:c3a652eff606 43
bonchenko 0:c3a652eff606 44 unsigned char USART_ReadByteSync(USART_TypeDef *USARTx)
bonchenko 0:c3a652eff606 45 {
bonchenko 0:c3a652eff606 46 while ((USARTx->SR & USART_SR_RXNE) == 0)
bonchenko 0:c3a652eff606 47 {
bonchenko 0:c3a652eff606 48 }
bonchenko 0:c3a652eff606 49
bonchenko 0:c3a652eff606 50 return (unsigned char)USART_ReceiveData(USARTx);
bonchenko 0:c3a652eff606 51 }