第1个回答 2023-03-27
在Keil中,SubMain和Main是按照名字来执行的程序段,而不是按照位置。
当您在Keil中创建一个新项目时,Keil会生成一个默认文件main.c并将其视为程序入口点。然而,在大多数情况下,我们可能需要使用其他函数来为主函数main()进行初始化,比如硬件初始化、外设初始化等。这时,我们可以在代码中编写另一个函数,并将其命名为SubMain(),然后将其设置为程序入口点。这样在程序被执行时,先执行SubMain()函数,然后再执行Main()函数。
因此,当您在Keil中设置SubMain()函数为程序入口点时,SubMain()函数就会被先执行,然后再执行Main()函数。这就解释了为什么SubMain会优先于Main执行。
需要注意的是,实际上这两个函数的执行顺序并不影响程序的运行,只不过SubMain()函数常常用于初始化外设的操作,所以通常会先执行SubMain()函数来进行初始化工作。