TA的每日心情 | 开心 2018-11-19 09:39 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]初来乍到
|
楼主 |
发表于 2016-5-2 20:00:18
|
显示全部楼层
本帖最后由 火oooo 于 2016-5-5 08:10 编辑
由于3楼不知为何不能写入,所以先把预留给RFID应用的这层给占了吧。
接着说CH2_THREAD_EXAMPLE1,也就是thread_init.c这个文件。这个应用(称这个为应用不知合适不合适,还请飞鸟哥指正,谢谢)现象大家都还记得是什么吧?就是3颗led依次亮灭。
在程序中我们可以看到这样一段代码:
delay(0x8FFFFF);
EvbLedControl(LED1, LED_ON);
delay(0x8FFFFF);
EvbLedControl(LED1, LED_OFF);
delay(0x8FFFFF);
EvbLedControl(LED2, LED_ON);
delay(0x8FFFFF);
EvbLedControl(LED2, LED_OFF);
delay(0x8FFFFF);
EvbLedControl(LED3, LED_ON);
delay(0x8FFFFF);
EvbLedControl(LED3, LED_OFF);
是不是觉得很熟悉?这就是我们看到的led亮灭的对应部分。亮的时间由延时函数delay的参数决定。而这段代码存在于static void ThreadLedEntry(TArgument data)这个入口函数中。所以现在我们来看一下这个应用thread_init.c的整体结构:
1. 包含头文件
2. 预编译开关
3. 三个参数 设定栈长宽字节、优先级字节、时间片字节的长度
4. 定义线程
5. 定义线程栈
6. 定义线程入口函数 线程的主要功能在这里实现。static void ThreadLedEntry(TArgument data)函数就在这个位置
7. 定义应用入口函数 系统调用此应用,从而对线程进行处理
8. 定义main函数
这个结构在后续的程序分析中我们再逐个印证。
|
|