私は 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'
最後の行の後、ファイル内のほぼすべての変数が同じようにリストされます。
問題がリンカーに関連していることはわかっていますが、どこで修正すればよいかわかりません。
おそらく私はそれに別の方法でアプローチする必要がありますか?上記の 2 つの警告を修正 (それぞれコメントとリターンの追加) しても、問題は修正されません。
ちょっとした背景として、stm32F4に接続されたカメラやその他のデバイスを駆動するためにChibiosを使用しようとしています。CooCox が単に苦痛であることが判明した場合は、よりメイクファイルに適したものに切り替えることができます (メイクファイルをインポートする方法はありません!)。
よろしくお願いします