1 | static OS_TCB AppTaskStartTCB;
|
2 | static CPU_STK AppTaskStartStk[APP_TASK_START_STK_SIZE];
|
3 |
|
4 | static void AppTaskStart (void *p_arg);
|
5 |
|
6 | static OS_TMR Tmr;
|
7 | void Fnct(void);
|
8 |
|
9 |
|
10 | int main(void)
|
11 | {
|
12 | OS_ERR err;
|
13 |
|
14 | /* Setup STM32 system (clock, PLL and Flash configuration) */
|
15 | BSP_IntDisAll(); /* Disable all interrupts. */
|
16 |
|
17 | OSInit(&err); /* Init uC/OS-III. */
|
18 |
|
19 | OSTaskCreate((OS_TCB *)&AppTaskStartTCB, /* Create the start task */
|
20 | (CPU_CHAR *)"App Task Start",
|
21 | (OS_TASK_PTR)AppTaskStart,
|
22 | (void *)0,
|
23 | (OS_PRIO )APP_TASK_START_PRIO,
|
24 | (CPU_STK *)&AppTaskStartStk[0],
|
25 | (CPU_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE / 10],
|
26 | (OS_STK_SIZE)APP_TASK_START_STK_SIZE,
|
27 | (OS_MSG_QTY )0,
|
28 | (OS_TICK )0,
|
29 | (void *)0,
|
30 | (OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),
|
31 | (OS_ERR *)&err);
|
32 |
|
33 | OSStart(&err); /* Start multitasking (i.e. give control to uC/OS-III). */
|
34 | return (0);
|
35 | }
|
36 |
|
37 | static void AppTaskStart (void *p_arg)
|
38 | {
|
39 | CPU_INT32U cpu_clk_freq;
|
40 | CPU_INT32U cnts;
|
41 | OS_ERR err;
|
42 |
|
43 | (void)p_arg;
|
44 |
|
45 | BSP_Init(); /* Initialize BSP functions */
|
46 | CPU_Init(); /* Initialize the uC/CPU services */
|
47 |
|
48 | cpu_clk_freq = BSP_CPU_ClkFreq(); /* Determine SysTick reference freq. */
|
49 | cnts = cpu_clk_freq / (CPU_INT32U)10000; //OSCfg_TickRate_Hz; /* Determine nbr SysTick increments */
|
50 | OS_CPU_SysTickInit(cnts); /* Init uC/OS periodic time src (SysTick). */
|
51 |
|
52 | #if OS_CFG_STAT_TASK_EN > 0u
|
53 | OSStatTaskCPUUsageInit(&err); /* Compute CPU capacity with no task running */
|
54 | #endif
|
55 |
|
56 | CPU_IntDisMeasMaxCurReset();
|
57 |
|
58 | OSTmrCreate((OS_TMR *)&Tmr,
|
59 | (CPU_CHAR *)"Timer",
|
60 | (OS_TICK )10,
|
61 | (OS_TICK )100,
|
62 | (OS_OPT )OS_OPT_TMR_PERIODIC,
|
63 | (OS_TMR_CALLBACK_PTR)Fnct,
|
64 | (void *)0,
|
65 | (OS_ERR *)&err);
|
66 |
|
67 | CPU_BOOLEAN status;
|
68 | status = OSTmrStart((OS_TMR *)&Tmr, &err);
|
69 |
|
70 | while (DEF_TRUE)
|
71 | {
|
72 | Led_Toggle(1);
|
73 | }
|
74 | }
|
75 |
|
76 |
|
77 | void Fnct(void)
|
78 | {
|
79 | Led_Toggle(2);
|
80 | }
|