123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #include "main.h"
- #include "sram.h"
- #include "nandflash.h"
- #include "usart.h"
- #include "malloc.h"
- #include "demo_nand_fatfs.h"
- #include "cjson.h"
- #include "delay.h"
- #include "string.h"
- #include "includes.h"
- #include "led.h"
- #define Master
- #ifndef Master
- #define Slave
- #endif
- //设置任务优先级
- #define START_TASK_PRIO 10 //开始任务的优先级设置为最低
- //设置任务堆栈大小
- #define START_STK_SIZE 128
- //任务堆栈
- OS_STK START_TASK_STK[START_STK_SIZE];
- //任务函数
- void start_task(void *pdata);
-
- //LED任务
- //设置任务优先级
- #define LED_TASK_PRIO 9
- //设置任务堆栈大小
- #define LED_STK_SIZE 64
- //任务堆栈
- OS_STK LED_TASK_STK[LED_STK_SIZE];
- //任务函数
- void led_task(void *pdata);
-
- //网络状态灯任务
- #define NET_STATUS_LED_TASK_PRIO 8
- //设置任务堆栈大小
- #define NET_STATUS_LED_STK_SIZE 64
- //任务堆栈
- OS_STK NET_STATUS_LED_TASK_STK[NET_STATUS_LED_STK_SIZE];
- //任务函数
- void net_status_led_task(void *pdata);
- void NVIC_Configuration(void);
- int main(void)
- {
- delay_init();
- NVIC_Configuration();
- FSMC_SRAM_Init();
- my_mem_init(SRAMIN);
- my_mem_init(SRAMEX);
- //nandflash并不用初始化,调用fafts时会初始化
- LED_GPIO_Config();
- NET_STATUS_LED_Config();
- //spi sx1278初始化
-
- //ucos初始化
- OSInit();
- OSTaskCreate(start_task,(void*)0,(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO);
- OSStart(); //开启UCOS
- /* Infinite loop */
- while (1)
- {
-
- }
-
- }
- void start_task(void *pdata)
- {
- OS_CPU_SR cpu_sr;
- pdata = pdata ;
-
- OSStatInit(); //初始化统计任务
- OS_ENTER_CRITICAL(); //关中断
- #if LWIP_DHCP
- lwip_comm_dhcp_creat(); //创建DHCP任务
- OSTimeDlyHMSM(0,0,2,500);
- #endif
- OSTaskCreate(led_task,(void*)0,(OS_STK*)&LED_TASK_STK[LED_STK_SIZE-1],LED_TASK_PRIO);//创建LED任务
- OSTaskCreate(net_status_led_task,(void*)0,(OS_STK*)&NET_STATUS_LED_TASK_STK[NET_STATUS_LED_STK_SIZE-1],NET_STATUS_LED_TASK_PRIO);//创建LED任务
- OSTaskSuspend(OS_PRIO_SELF); //挂起start_task任务
- OS_EXIT_CRITICAL(); //开中断
- }
- //测试任务
- void led_task(void *pdata)
- {
- while(1)
- {
- LED(ON);
- OSTimeDlyHMSM(0,0,0,500);
- LED(OFF);
- OSTimeDlyHMSM(0,0,0,500);
- }
- }
- void net_status_led_task(void *pdata)
- {
- while(1)
- {
- NET_STATUS_LED(ON);
- OSTimeDlyHMSM(0,0,0,500);
- NET_STATUS_LED(OFF);
- OSTimeDlyHMSM(0,0,0,500);
-
- }
-
- }
- void bsp_Idle(void)
- {
- /* --- 喂狗 */
- /* --- 让CPU进入休眠,由Systick定时中断唤醒或者其他中断唤醒 */
- }
- /**
- * @brief 配置嵌套向量中断控制器NVIC分组
- * @param 无
- * @retval 无
- */
- void NVIC_Configuration(void)
- {
- NVIC_InitTypeDef NVIC_InitStructure;
-
- /* 嵌套向量中断控制器组选择 */
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
-
- }
|