使用pthreads裸机的交叉编译程序

eac*_*tor 0 embedded arm bare-metal xilinx

好的,这可能是一个非常笼统的问题,但是我不熟悉该主题,也很高兴获得任何提示。

我有一个来自SoucereyCodeBench的ARM交叉编译工具链(arm-xilinx-linux-gnueabi-)。我交叉编译了一个使用编译器选项的库:-DSC_INCLUDE_FX -DSC_USE_PTHREADS -pthreads -fPIC -DPIC

因此,如果我想将库用于裸机程序,那么我会为裸机编译器(arm-xilinx-eabi-)需要pthreads吗?

否则我的程序可能首先不会运行或编译。那么可以为裸机编译pthread吗?

小智 5

线和裸金属

裸机编程目标仅提供您所使用的内容。大多数人都熟悉的pthread实现是Linux NPTL版本,它可以工作是因为Linux内核和GNU C库使之可以工作。在裸机目标上,您不会获得Linux内核或GNU C库的任何好处。您将必须拥有自己的裸机线程库和运行时,但是此时使用提供线程的RTOS可能会更好。

关于工具链前缀的说明

gcc工具链前缀arm-xilinx-linux-gnueabi-表示目标为ARM Linux,而不是裸机。该arm-xilinx-linux-gnueabi-工具链将建立并行线程知道代码(-lpthread),但它会假设Linux目标上已经安装了并行线程库和其他必要的软件层。

相反,如果切换到gcc ARM xilinx工具链的裸机版本,则工具链前缀将为arm-xilinx-eabi-。我上面提到的有关裸机和线程的所有内容都适用。