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:
Wed Apr 22 10:18:55 2015 +0000
Revision:
2:0fa89ba8f6fe
Parent:
0:c3a652eff606
Bootloader from SD card works perfectly. Compiled with offset in EmBlocks, ADE cannot print readings - but its happened without bootloader too. The problem is Emblocks compiler settings

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 }