Bootload from SD card to sector 0, and jump to sector 24 where new firmware resides
Fork of Panel-Controller-Bootloader by
usart.c@0:c3a652eff606, 2015-04-21 (annotated)
- 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?
User | Revision | Line number | New 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 | } |