main.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "stm32f4xx.h"
  2. #include "FreeRTOS.h"
  3. #include "task.h"
  4. #include "main.h"
  5. #include "init_task.h"
  6. #include "common_config.h"
  7. #include "board.h"
  8. /* Размещение стека FreeRTOS в CCRAM */
  9. #if defined ( __ICCARM__ )
  10. #pragma location = ".sram"
  11. uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];
  12. #else
  13. uint8_t ucHeap[ configTOTAL_HEAP_SIZE ] __attribute__ ((section (".mb1text")));
  14. /* Секция размещения СRC прошивки */
  15. uint32_t crc __attribute__ ((section (".crc"))) = 0xAABBCCDD;
  16. /* Секция размещения HW ревизии платы */
  17. char hw_rev[HW_REV_LEN] __attribute__ ((section (".hw_rev"))) = HW_REV;
  18. #endif
  19. int main()
  20. {
  21. TIM_Cmd(TIM13, DISABLE);
  22. TIM_ClearITPendingBit(TIM13, TIM_IT_Update);
  23. __disable_irq();
  24. NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x20000);
  25. NVIC_SetPriorityGrouping(0);
  26. NVIC_PriorityGroupConfig( NVIC_PriorityGroup_4 );
  27. __enable_irq();
  28. RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
  29. /* Clear flash error flags if were set */
  30. FLASH_ClearFlag(FLASH_FLAG_PGPERR);
  31. FLASH_ClearFlag(FLASH_FLAG_PGSERR);
  32. xTaskCreate( InitTask, "InitTask", 500, NULL, tskIDLE_PRIORITY, NULL);
  33. vTaskStartScheduler();
  34. return 0;
  35. }