【问题】
扩展:给你一款芯片如何确定他使用的编译链,在哪儿能查到,在哪儿下载?多谢! 以C语言在linux下的编译链作为例子,比如arm-linux-gcc有针对不同平台的很多版本,用哪个呐? |
【问题解答】
1.“编译链”
你说的:编译链
据我所知:是不妥的叫法
正确的叫法是:交叉工具链
也常叫做:交叉编译器
2.关于交叉工具链/交叉编译器
首先,你需要先搞懂,什么是交叉工具链
详见:
3.给定一个CPU/MCU/SoC,如何确定其所用的交叉工具链?
主要逻辑是:
- 确定该CPU/MCU/SoC所用的CPU内核
然后根据对应的CPU内核,去找其对应的,可用的交叉工具链。
针对你这里的:AT91SAM9G45
随便去用google搜了下:
AT91SAM9G45
而找到:
AT91SAM9G45 – ARM926-based eMPU
可知:
是基于ARM926的内核的。
所以:
去找,支持ARM926内核的,交叉工具链,即可。
进一步的,通过:
知道了:
ARM926的内核架构是ARMv5TEJ
所以:
去找,
- 支持ARMv5的交叉编译器
- 或者是支持ARMv5TEJ的交叉编译器
- 也就支持了ARM926
- 也就支持了你的:AT91SAM9G45
4.在哪里可以得到,下载到所需要的交叉工具链?
关于此问题,之前教程已经解释的足够详细了。
详见:
对于你此处的,所需要的:
支持ARM926内核的,交叉工具链
去帮你找找:
找到一些:
找到的支持ARMv5或ARMv5TEJ或ARM926或AT91SAM9G45的交叉编译器
1.这里:
也有你要的,直接编译好的,你可以直接下载试用的:
(支持了armv5的arm-unknown-linux-gnueabi)
2.其他更多Linaro的版本的arm的交叉编译器
https://launchpad.net/linaro-toolchain-binaries/+milestone/2013.09
中的for arm v7的
gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_win32.zip.xz (md5, sig) gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_win32.zip (md5, sig) gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_runtime.tar.bz2 (md5, sig) gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux.tar.xz (md5, sig) gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux.tar.bz2 (md5, sig) gcc-linaro-arm-linux-gnueabihf-4.8-2013.09-20130912_win32.exe (md5, sig) |
另外,类似的,去这里:
https://launchpad.net/gcc-arm-embedded
也可以找到你要的:
DownloadsLatest version is 4.7-2013-q3-update |
3.去:
https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription?@template=lite
找你要的。
【总结】
只有自己真正搞懂,体系架构,交叉编译器的概念,
才能知道,针对具体哪款芯片,需要哪个交叉编译器,以及如何去下载所需要的。
转载请注明:在路上 » 【问题解答】AT91SAM9G45使用什么编译链?