IOT入门到入土-1
在学习了一段时间x86指令集后打算穿插着点MIPS指令集同步学习,从现在开始入门IOT
学习文章:《IoT从入门到入土》(1)–MIPS交叉编译环境搭建及其32位指令集
1.MIPS交叉编译环境搭建
1 | #!/bin/sh |
2.MIPS交叉编译环境测试
先来段测试代码
1 |
|
和x86相同,MIPS也分为大端序和小端序,有32位和64位的区别,接下来记录编译不同类型的可执行文件所需要的命令:
32位小端序
1 | mipsel-linux-gnu-gcc -g test.c -o test_mipsel_32 |
32位大端序
1 | mips-linux-gnu-gcc -g test.c -o test_mipsel_32 |
64位小端序
1 | mips64el-linux-gnuabi64-gcc -g test.c -o test_mipsel_64 |
64位大端序
1 | mips64el-linux-gnuabi64-gcc -g test.c -o test_mipsel_64 |
编译出的文件保护均为开启Canary、半开RELRO,其他保护均为关闭状态。
测试qemu运行环境
选择其中的test_mipsel_32使用qemu模拟运用,该可执行文件是动态链接,所以需要在运行时额外指定对应的动态链接库
ubuntu的动态链接库在/usr/目录下
1 | qemu-mipsel-static -L /usr/mipsel-linux-gnu/ ./test_mipsel_32 |

测试成功
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 mint1.!

