用CooCox编译STM32F4-Discovery上的CHIBIOS

时间:2012-12-10 05:09:50

标签: gcc arm stm32f4discovery

我在为ARM编译时非常痛苦。

我开始使用CooCox。创建项目后,我将所有CHIBIOS包含路径添加到项目中。我的代码本身是stm32F4发现的默认Chibios示例代码。

在编译时,我得到一个没有任何内容的输出文件。

但是,如果我在链接配置中取消选择“丢弃未使用的部分”,我会得到以下内容:

GCC HOME: C:\CooCox\CoIDE\GCC\bin compile: [mkdir] Skipping C:\CooCox\Code\Test3\test3_Flash\Debug\bin because it already exists. [mkdir] Skipping C:\CooCox\Code\Test3\test3_Flash\Debug\obj because it already exists. [cc] 2 total files to be compiled. [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F407VG -DSTM32F4XX -IC:\CooCox\Code\Test3 -IC:\CooCox\Code\chibitest\chibios_2.4.2\boards\st_stm32f4_discovery -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\common\armcmx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\src -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\various -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\kernel\src -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx\stm32f4xx\ld -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32 -IC:\CooCox\Code\chibitest\chibios_2.4.2\demos\armcm4-stm32f407-discovery -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\rtcv1 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\include -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\gcc\armcmx\stm32f4xx -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\usbv1 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32f4xx -IC:\CooCox\Code\chibitest\chibios_2.4.2\test -IC:\CooCox\Code\chibitest\chibios_2.4.2 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\ports\common\armcmx\cmsis\include -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\platforms\stm32\gpiov2 -IC:\CooCox\Code\chibitest\chibios_2.4.2\os\kernel\include C:\CooCox\Code\Test3\main.c C:\CooCox\Code\Test3\syscalls\syscalls.c [cc] In file included from C:\CooCox\Code\chibitest\chibios_2.4.2\os\hal\include/hal.h:39:0, [cc] from C:\CooCox\Code\Test3\main.c:29: [cc] C:\CooCox\Code\chibitest\chibios_2.4.2\boards\st_stm32f4_discovery/board.h:57:0: warning: "STM32F4XX" redefined [enabled by default] [cc] <command-line>:0:0: note: this is the location of the previous definition [cc] C:\CooCox\Code\Test3\main.c: In function 'Thread1': [cc] C:\CooCox\Code\Test3\main.c:189:1: warning: no return statement in function returning non-void [-Wreturn-type] [cc] Starting link [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wl -nostartfiles -g -Wl,-Map=test3_Flash.map -O0 -lgcc -lc -lm -lnosys -LC:\CooCox\CoIDE\workspace\test3_Flash -Wl,-TC:\CooCox\CoIDE\workspace\test3_Flash/arm-gcc-link.ld -g -o test3_Flash.elf ..\obj\main.o ..\obj\syscalls.o [cc] ..\obj\main.o: In function pwmpcb':

   [cc] C:\CooCox\Code\Test3/main.c:127: undefined reference to `ADCD1'

在最后一行之后,文件中的每个变量都以相同的方式列出。

现在我知道我的问题与链接器有关,但我不确定在哪里修复它。

也许我需要以不同的方式处理它? 修复上述两个警告(分别注释和添加返回)并不能解决问题。

作为一些背景知识,我希望使用Chibios来驱动相机和连接到stm32F4的其他设备。如果CooCox简直是一种痛苦,我可以切换到更友好的makefile(没有办法导入makefile!)

最好的问候

1 个答案:

答案 0 :(得分:0)

作为开发F4&amp; amp;的开源工具链。 chibios你可以试试chibistudio:

http://sourceforge.net/projects/chibios/files/ChibiStudio/

我已经使用了一段时间,我对它非常满意。