![μC/OS-III内核实现与应用开发实战指南:基于STM32](https://wfqqreader-1252317822.image.myqcloud.com/cover/857/25755857/b_25755857.jpg)
上QQ阅读APP看书,第一时间看更新
1.4 在KEIL工程中添加文件
在工程中添加好组之后,需要把本地工程中新建的文件添加到工程,具体为把readme.txt文件添加到Doc组,将app.c文件添加到User组,与操作系统相关的文件我们还没有编写,那么操作系统相关的组就暂时为空,如图1-6所示。
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/004-4-i.jpg?sign=1738906072-UTWtm1IAa1fzx2DdJCaAcrXWAATD0WE0-0-e970fd9737fb377b5e2ecbf631d7a142)
图1-6 往组里面添加好的文件
将本地工程中的文件添加到工程组的具体的方法为双击相应的组,在弹出的对话框中找到要添加的文件,默认的文件类型是C文件,如果要添加的是文本或者汇编文件,那么此时将看不到,这时就需要把文件类型设置为All files,最后单击Add按钮即可,如图1-7所示。
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/005-i.jpg?sign=1738906072-NCm8lC6yJQ38icq5x0LzYozmHg9IewDx-0-a1f5664f322a5646f2dbc4f45be5d785)
图1-7 向组中添加文件
下面编写main()函数。
一个工程如果没有main()函数是无法编译成功的,因为系统在开始执行时先执行启动文件中的复位程序,复位程序中会调用C库函数__main,__main的作用是初始化系统变量,如全局变量、只读变量可读可写变量等。__main最后会调用__rtentry,再由__rtentry调用main()函数,从而由汇编进入C的世界,这里面的main()函数就需要我们手动编写,如果没有编写main()函数,就会出现main()函数未定义的错误,如图1-8所示。
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/005-2-i.jpg?sign=1738906072-pGr6YkiRyoOaeXUCDElWGd5inyyYdFJs-0-59287cfb110ceb6f47126cec54ac2c63)
图1-8 未定义main()函数的错误
我们将main()函数写在app.c文件中,因为是刚刚新建的工程,所以main()函数暂时为空,具体参见代码清单1-1。
代码清单1-1 main()函数
1 int main(void) 2 { 3 for (;;) { 4 /* 无操作 */ 5 } 6 }