05 2017 档案
摘要:1、烧写初始化程序 首先格式化SD卡, 右键以管理员方式打开光盘中的tools/SD-Flasher, 首先scan一下,看看系统中有没有SD卡,如果available处为no,需要选中relayout,然后再scan一下 然后选择images/superroot-6410,fuse烧写 如果出现1
阅读全文
摘要:1、机器码 机器码实质是一串32位的数据,每个机器码都被分为许多段 这里只介绍一种命令的格式,MOV指令 这里首先准备一个汇编文件 编译以后反汇编,获得其机器码 中间一串数字就是机器码 转换成二进制: 1110 00 0 1101 0 0000 0000 000000000001 0000 00 1
阅读全文
摘要:先看作用,再看格式,最后看例子自己实现一下 1、算术和逻辑指令 1、1MOV dest是目的数,必须是通用寄存器;op_1是操作数,可以是立即数和通用寄存器 注释用@符号 1、2MVN 会进行取反操作(二进制)再赋值给目的寄存器 结果r1为0xfffffffd(处理器32位) r2为0xffffff
阅读全文
摘要:学习汇编语言作用:在BootLoader和内核启动阶段需要汇编语言,这时没有C语言环境 还有些时候汇编的效率比C语言高 1、ARM汇编分类 2、代码基本格式 基本格式如下, .global为全局申明,可以让start在其他程序中运行 一般.section都可以取消 3、汇编程序编程环境 3、1vim
阅读全文
摘要:所谓寻址方式就是处理器根据指令中给出的信息来找到所需操作数的方式 1、立即数寻址 2、寄存器寻址 3、寄存器间接寻址 操作数在内存当中 4、基址变址寻址 操作数也在内存当中 5、相对寻址
阅读全文
摘要:ARM寄存器有37个寄存器,包含31个通用寄存器和6个状态寄存器 R13_svc表示svc模式下的R13寄存器,不是同一个寄存器 上面R0~R7是同一个 下面是状态寄存器,总共6个 R0~R15可以被划分为三类,R0~R7属于不分组寄存器,R8~R14属于分组寄存器,R15是PC指针 R13通常被用
阅读全文
摘要:ARM Architecture Reference Mannal中A2.2 ARM处理器支持七种工作模式,能调用的指令和寄存器都是不同的 Linux对于普通程序运行在user模式,对于内核运行在svc模式
阅读全文
摘要:本部分主要是eclipse的调试功能 也可以集成编译 JTAG是调试接口,eclipse通过GDB server和jlink通信,达到调试开发板的目的。实际上虚拟机中还需要jlink的软件。所以这里需要事先安装软件和相关硬件 1、准备工作 1、1从sd/nor flash 启动,利用辅助程序进行格式
阅读全文
摘要:常用选项 -E:只进行预处理,不编译-S:只编译,不汇编-c:只编译、汇编,不链接-g:包含调试信息-I:指定include包含文件的搜索目录-o:输出成指定文件名 高级选项 -v:详细输出编译过程中所采用的每一个选项-C:预处理时保留注释信息-ggdb:在可执行文件中包含可供GDB使用的调试信息-
阅读全文
摘要:arm-linux编译过程: 交叉工具链arm-linux-gcc -g -c led.S,产生.o文件 链接器脚本arm-linux-ld -T led.lds -o led.elf led.o ; lds脚本文件 第三步格式转换arm-linux-objcopy -o binary led.el
阅读全文
摘要:1.为什么使用Makefile make指令依靠Makefile文件,用于快速得到二进制文件 规则:用于说明略好生成目标文件,规则格式如下 命令可以有多个,依赖是输入文件,目标是输出; 可以没有依赖,此时目标称为伪目标,必须用.PHONY标记出来,如上最后一段 如果想仅使用其中一部分命令得到某个中间
阅读全文
摘要:解决/usr/bin/ld: cannot find -lc过程 这会发生在没有静态链接需要的C语言库时候出现 用locate libc.a找找,如果找到,那么只需要建立正确的库链接,指向包含libc.a的文件夹 如果不存在,那么很不幸的在网上很少有RHEL的glibc-static补丁。WTF。最
阅读全文
摘要:系统中ADS\RADS把makefile、lds脚本、调试环境eclipse工作完成了 这里我们开始学习这些原本应该我们做的工作 专题一--工欲善其事,必先利其器 共5课 3.1安装交叉链工具 习惯上可以先创建目录mkdir 启动samba,远程登录Linux,将ARMtool放到目录中 这时不能访
阅读全文

浙公网安备 33010602011771号