郁闷的一天,参考《一步步写嵌入式操做系统》这本书来实现第一节环境的搭建,可事实并非一路顺风。早上安装Cygwin,由于校园网的问题,安了有些时间。安装完后开始配置交叉编译环境armgcc,而后按照书上一步一步作,但是爆出一大堆关于汇编的错误,网上搜了半天没找出缘由。最终值得放弃这个蛋疼的cygwin,用虚拟机的Linux。而后又是一夜,期间遇到各类问题,最终排除万难,一一解决,一天总算有点成果了。不过才开始接触linux几天,对Linux还不是很熟。闹出一点小笑话,在群里发问被鄙视了。linux
列出当时出现的汇编错误,若有大神看见,但愿能帮助我改正。ide
$ arm-elf-gcc -nostdlib test.c
/tmp/ccFLe985.s: Assembler messages:
/tmp/ccFLe985.s:5: Warning: .type pseudo-op used outside of .def/.endef ignored.
/tmp/ccFLe985.s:5: Error: junk at end of line, first unrecognized character is `
m'
/tmp/ccFLe985.s:7: Error: invalid character '@' in mnemonic
/tmp/ccFLe985.s:8: Error: invalid character '@' in mnemonic
/tmp/ccFLe985.s:9: Error: invalid character '@' in mnemonic
/tmp/ccFLe985.s:10: Error: invalid char '[' beginning operand 2 `[sp'
/tmp/ccFLe985.s:11: Error: too many memory references for `add'
/tmp/ccFLe985.s:12: Error: expecting operand after ','; got nothing
/tmp/ccFLe985.s:13: Error: too many memory references for `mov'
/tmp/ccFLe985.s:14: Error: too many memory references for `add' 学习
下图是辛苦了一夜的成果,不过有点小BUG,就是关于那个leeos.bin文件的问题,书上说编译的二进制文件,我不知道在哪里编译的。只是新建了个文件就叫这个leeos.bin。最后显示加载这个文件失败。但愿知道的告诉我。操作系统
但愿学习下操做系统的能够去看看上面说到的那本书,我的感受跟日常的那些讲操做系统的书有很大的不一样。http://www.leeos.org/这是那个书的网址。get
这几天忙着复习考试。下星期更是要复习。唉。。都几天没搞ARM了。明天星期天是去实验室仍是图书馆复习呢。。。虚拟机
仍是那句话,天天都进步一点。编译