这几天在移植uCOSII,其实关于STM32的uCOSII网上有很多例子了,但是想改成自己用的芯片型号以及把自己的程序加进去还得做些改动,
今天就遇到了一些麻烦,而且与以前遇到的麻烦相同,
有事编译器会在不知名的情况下自己调用Keil自带的STM32固件库,导致新库和旧库版本不兼容出现很多错误,但是明明没有写调用自带库的语句却为什么Keil会强行从自带库中加载文件导致出错,
这个问题以前整了我很多次,今天终于记住了,原因归结于Keil的编译器在查找C/C++类文件时要求用户指明搜索路径,而且它不会自动搜索该路径下的子目录,如果所需要的文件在指定路径中无法找到,编译器就会在自带库中搜索。
今天遇到很多错误首先就是由于包含路径不全,
这个路径最好按照一个简单的顺序,
还有个就是如果自己想用ST库函数自己建立一个工程,强烈建议先把STM32官方库的文件将组织结构简化成2个文件夹,一个是将所有核心文件直接放在CMSIS文件夹下,另一个将库的所有头文件和C文件放在SRC文件夹下,这样在创建工程后会带来很多方便
比如在指定工程文件包含路径的时候就很方便,因为关于库的文件夹只有2个,两下就填好了,但是如果按照官方的文件组织结构,就需要在工程中添加很多次,而且可能漏掉某个路径,因为路径不支持自动搜索子目录。
今天最后遇到的问题是提示 startup_stm32f10x_hd.o 找不到main函数,很郁闷,最后重新建立工程,简化了文件结构,没有再出错
用户296607 2010-12-20 12:42