如何使用 Eclipse 开发裸机 i.mx6sx 代码?

How do I develop bare-metal i.mx6sx code using eclipse?

我想知道您是否可以帮助我解决我在裸机中为 i.MX6 SoloX 开发时遇到的一些问题。我在看这个 link https://community.nxp.com/docs/DOC-106253 并下载了那里的文件作为如何为 i.MX6 开发裸机 c 代码的示例。

然后我根据本教程设置我的 eclipse 环境 https://community.nxp.com/docs/DOC-103736 但只是工具链,因为我对处理器专家不感兴趣。

因为我在 Linux 上工作,所以我没有安装 Code Sourcery 东西,而是使用 gcc-arm-none-eabi,我使用以下安装:

$ sudo apt-get install gcc-arm-none-eabi

因此我不得不将 cs-rmcs-make 更改为 rm 使 分别。

并且我能够使用下载的代码创建一个 eclipse 项目并配置该项目以使其工作,但是,我遇到了第一个错误:

main.c:8:19: fatal error: stdio.h: No such file or directory
 #include <stdio.h>
               ^
compilation terminated.
make: *** [cortex_A9/main.o] Error 1
cortex_A9/subdir.mk:24: recipe for target 'cortex_A9/main.o' failed

并且我能够在 project > properties 的包含目录中添加 "/usr/include" 来解决它。但我不确定这是否是解决此错误的正确方法。

修复这个错误后我得到了一个新错误:

syscalls.c:168:1: error: unknown type name 'caddr_t'
 caddr_t _sbrk(int incr)

为了解决这个问题,我必须明确包含文件 "/usr/include/x86_64-linux-gnu/sys/types.h" 并且我不知道这是否是解决问题的正确方法。

现在已经消除了这两个错误,我有以下错误:

Building target: imx6-A9.elf
Invoking: Cross ARM C Linker
arm-none-eabi-gcc -mcpu=cortex-a9 -march=armv7-a -marm -mlittle-endian -mfloat-abi=softfp -mfpu=neon -mno-unaligned-access -fno-zero-initialized-in-bss -O0  -g -T "/home/mmalagon/iMX6/MX6SX_hello_MFG/cortex_A9/mx6slx.ld" -nostartfiles -Wl,-Map,"imx6-A9.map" -o "imx6-A9.elf"  ./cortex_A9/main.o ./cortex_A9/syscalls.o ./cortex_A9/uart.o   
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: cannot find -lg
makefile:42: recipe for target 'imx6-A9.elf' failed
/usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
make: *** [imx6-A9.elf] Error 1

我没能解决。

我不知道这个错误是否是我解决前两个错误的方法的结果。

有人知道如何为 i.MX6 裸机开发正确设置 eclipse 吗?

非常感谢您的帮助!!

如果您想在不使用 CodeSourcery 的情况下为 i.MX6SoloX 开发 bare-metal 代码,那么您需要执行以下操作:

sudo apt-get install gcc-arm-none-eabi libnewlib-arm-none-eabi -y

然后在 Project>Settings>C/C++ Build 中选择 "Custom (arm-none-eabi-gcc)" 'Toolchains' 标签。