将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 /中) arm)包含我必须更新的所有存根,但是它们都填写了相当完整的代码(如果没有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),但他们也告诉我实现存根而不提及哪里,谁,什么,何时或如何!
没有找到相关结果
已邀请:
2 个回复
谷起
课刊灭似