小编Kit*_*uzz的帖子

将newlib移植到自定义ARM设置

这是我的第一篇文章,它涵盖了我一直想要开发和关闭一年的东西.

基本上它归结为以下内容:我有一个newlib的副本,我正在尝试使用LPC2388(来自NXP的ARM7TDMI).这是在使用arm-elf-gcc的linux机器上

我的问题是我一直在看很多关于移植newlib的教程,他们都谈论了存根(如exit,open,read/write,sbrk),我对它有很好的了解如何实现所有这些功能.但是我应该把它们放在哪里

我有来自sources.redhat.com/pub/newlib/newlib-1.18.0.tar.gz的newlib发行版,在我找到"syscalls.c"之后(在newlib-1.18.0/newlib/libc/sys /中)手臂),它包含了所有我必须更新存根的,但是他们都填满了,而查看完代码(它似乎没有crt0.s中,其本身并不与我的工作芯片)的工作.

我应该自己消灭这些功能,然后重新编写它们吗?或者我应该把它们写在别的地方.我应该使用我的"架构"的名称在newlib/libc/sys中创建一个全新的文件夹并更改目标以匹配吗?

我也很好奇,如果在将它作为一个开源项目发布之后有适当的礼节分配这样的东西.我目前有一个下载binutils,arm-elf-gcc,newlib和gdb的脚本,并编译它们.如果我正在修改newlib目录中的文件,我应该提交一个我的脚本自动应用的补丁吗?或者我应该将修改后的newlib添加到存储库中吗?

谢谢你好好阅读!接下来是对我正在做的更详细的细分.


对于那些想要/需要有关我的设置的更多信息的人:

我正在基于Uzebox项目(http://belogic.com/uzebox/)松散地构建一个ARM视频游戏控制台.

当我试图弄明白时,我已经从各种不同的资源中做了各种各样的事情.你可以在这里阅读我的冒险开始(sparkfun论坛,没有人回应,因为我自己解决):forum.sparkfun.com/viewtopic.php?f = 11&t = 22072

我通过阅读有关移植newlib的Stackoverflow问题并查看了一些不同的教程(如wiki.osdev.org/Porting_Newlib),但他们也告诉我实现存根而不提及哪里,谁,什么,何时或如何!

embedded libc newlib arm7

2
推荐指数
1
解决办法
2834
查看次数

标签 统计

arm7 ×1

embedded ×1

libc ×1

newlib ×1