[国嵌笔记][036][关闭MMU和CACHE]】的更多相关文章

关闭MMU和CACHE 1.Cache是一种容量小,但存取速度非常快的存储器,它保存最近用到的存储器中数据的拷贝.按功能分为ICache(指令Cache)和DCache(数据Cache) 2.虚拟地址就是程序中使用的地址:物理地址就是物理存储单元中实际使用的地址.虚拟地址可以让进程使用更大的空间.MMU的作用就是完成虚拟地址到物理地址的转换 3.在处理器初始化阶段,为防止意想不到的错误,需要暂时关闭MMU和Cache 4.MMU和Cache都是通过CP15协处理器的R1(control regi…
[国嵌笔记][008][远程登录Linux] 1.windows与Linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/iptables stop 3.通过ssh(字符界面)协议远程登录 4.通过VNC(图形界面)协议远程登录 1.安装tigervnc.rpm 2.启动vnc服务:vncserver & [国嵌笔记][009][Windows与Linux文件互享] 1.windows与linux能够相互ping通 2.关闭Linux防火墙 /etc/init.d/ipt…
uboot工作流程分析 程序入口 1.打开顶层目录的Makefile,找到目标smdk2440_config的命令中的第三项(smdk2440) 2.进入目录board/samsung/smdk2440/,找到u-boot.lds文件.uboot的链接都是由这个链接器脚本来控制的 3.打开u-boot.lds文件,找到.text(代码段)的第一个文件cup/s3c24xx/start.o,该文件就是uboot的入口代码.链接器脚本中的ENTRY用来表明整个程序的入口,那么标号_start就是整个…
u-boot分析(五) 上篇博文我们按照210的启动流程,对u-boot启动中的设置异常向量表,设置SVC模式进行了分析,今天我们继续按照u-boot的启动流程对以下内容进行分析. 今天我们会用到的文档: Arm9内核手册:http://download.csdn.net/detail/wrjvszq/8358867 Arm11内核手册:http://download.csdn.net/detail/wrjvszq/8358877 Arm a8内核手册:http://download.csdn.…
MMU配置与使用 1.通过点亮LED使用虚拟地址来使用MMU,采用段页映射方式 2.任务步骤:1.建立一级页表 2.写入TTB 3.打开MMU 代码编写 1.虚拟地址的段地址0xA0000000,一级页表的起始地址0x30000000(通常放在内存的起始地址),物理地址的段地址0x56000000 2.表项的位置等于一级页表的起始地址加上虚拟地址的高12位 3.表项的内容 Section base address:段基地址 SBZ:保持0 AP:访问权限,设置为11表示任意情况可读可写,在ARM…
协处理器作用 协处理器用于执行特定的处理任务,如数学协处理器可以执行控制数字处理,以减轻处理器的负担.ARM处理器最多可以支持16个协处理器,其中CP15是最重要的一个协处理器 CP15的作用 CP15是系统控制协处理器,通过额外的寄存器可以控制cache,MMU,系统时钟等功能 访问协处理器 1.CP15有16组寄存器,通过mcr和mrc指令来访问协处理器里的寄存器,从而达到访问协处理器的目的 2.通过datasheet中的CP15 register map summary可以查找到相关的寄存…
处理器内部寄存器,访问速度最快,但是数量少 TCM:紧耦合存储器(Cache.主存储器) 辅助存储器(Flash.SD等) Cache是一种容量小但是存取速度非常快的存储器 它保存最近用到的存储器中的数据的拷贝,对于程 序员来说,Cache是透明的,他自动决定保存哪些 数据.覆盖哪些数据.按照功能划分: I-cache:指令Cache D-cache:数据Cache 虚拟地址:程序中使用的地址 物理地址:物理存储单元的实际的地址 虚拟地址可以解决地址冲突,可以是进程使用更大的空间 1.使Icac…
交叉开发 嵌入式软件产生的平台称为宿主机,运行嵌入式软件的平台称为目标机 宿主机一般通过串口.网络.USB.JTAG等方式将软件下载到目标机 网络下载 一般有TFTP和NFS两种方式 tftp服务器 1.安装tftp服务器 rpm -ivh /mnt/Packages/xinetd-.rpm rmp -ivh /mnt/Packages/tftp-server-.rpm 2.配置tftp服务器 vim /etc/xinetd.d/tftp server_args = -s /home/tftp…
Vmware网络设置 1.bridged(桥接模式) 如果网络中能提供多个IP地址,则使用桥接方式.虚拟机与主机的IP地址彼此独立. 2.NAT(网络地址转换模式) 如果只能提供一个IP地址,则使用NAT模式.但外部计算机不能访问虚拟机. 3.host-noly(主机模式) 如果主机没有连接外部网络,则使用主机模式.使虚拟机与主机相互通信. Linux网络设置 1.ifconfig 查看网卡 2./etc/init.d/network restart 重启网卡 3.service Network…
引导安装步骤 相关介绍: 开发板软件构成:Bootloader.嵌入式操作系统.嵌入式文件系统 JTAG接口常用于对flash等器件进行编程,常见的JTAG下载线有并口和USB接口两种 硬件连接: 1.Flash选择开关拨到Nor Flash启动 2.连接好JLink与开发板 3.打开开发板电源 软件安装: 1.安装JLink驱动 2.连接开发板 J-Flash->file->Open Project->2440.jflash->Target->Connect 3.下载辅助安…
MMU功能解析 1.Memory Management Unit(存储器管理单元) 2.两个进程读取同一个地址能读到不同的值.因为进程访问的是虚拟地址,通过MMU转换成不同的物理地址.不同的进程通过MMU有不同的映射规则 3.如果MMU没有工作,那么在程序中使用的是物理地址.为避免程序物理地址冲突,在系统中会使用虚拟地址 4.MMU最重要的作用就是把虚拟地址转换成物理地址,其次就是控制访问权限 MMU地址转换 1.在ARM核手册的内存管理部分有相关描述 2.MMU把32位的虚拟地址转换成物理地址…
[设置svc模式] 设置CPU为SVC模式 1.因为初始化系统需要有很高的权限,SVC模式具有该权限,所以首先要使系统工作在SVC(0b10011)模式 2.设置cprs为0xd3(0b11010011)表示设置处理器为svc模式,并且屏蔽irq和frq /* *名称:set_cpu_to_svc *描述:设置CPU为SVC模式 */ set_cpu_to_svc: mrs r0, cpsr bic r0, #0x1f orr r0, #0xd3 //F 1,I 1,M[4:0] 10110 m…
GCC特点 GCC(GUN C Compiler)是GUN推出的功能强大.性能优越的多平台编译器.其执行效率与一般编译器相比平均效率要高20%~30%. GCC基本用法 gcc [options] filenames GCC编译流程 hello.c->预编译->hello.i->编译->hello.s->汇编->hello.o->链接->hello gcc -E hello.c -o hello.i   "-E"表示执行预处理 "…
破解步骤 1.在系统启动时进入grub选项菜单 2.在grub选项菜单中按e进入编辑模式 3.编辑kernel行,添加 /init 1 (表示进入单用户启动模式,在单用户启动模式中不会要求输入密码) 4.按b重启 5.进入系统后,将root用户密码删除 vim /etc/passwd 修改成root::0...,并保存退出 6.正常启动后,修改root密码…
Linux中常见的文本编辑器有Vi和Emacs Vim有3中工作模式:命令行模式.插入模式.底行模式 1.键入i进入插入模式 2.键入[Esc]退回到命令行模式 3.键入:进入底行模式,再键入wq保存退出 命令行模式 yy:复制 [n]yy:复制n行 p:粘贴 dd:删除 [n]dd:删除n行 /string:查找字符串 gg:移动到文件头 G:移动到文件尾 u:撤销 底行模式 :wq保存退出 :w [filename] 另存为 :set nu 显示行号 :set nonu 取消行号…
用户管理类命令 添加用户:useradd name 删除用户:userdel -r name "-r"表示删除对应用户的目录 修改密码:passwd name 切换用户:su - name "-"表示切换用户同时带入环境变量 添加用户组:groupadd name 删除用户组:groupdel name 权力分配:sudo commend 系统管理员分配给普通用户一些合理的权力 通过配置/etc/sudoers文件来分配权力 username ALL=(ALL) N…
Linux文件系统 bin目录:可执行的程序 boot目录:与Linux启动相关的文件 dev目录:设备以文件的方式存放 etc目录:配置文件 home目录:用户文件 lib目录:与库相关的文件 root目录:root用户文件 sbin目录:二进制可执行文件 tmp目录:临时文件 工作模式 切换到字符模式 init3 切换到图形化模式 init5 重要热键 [Tab] 自动补齐 [Ctrl]+c 终止正在运行的程序 [Ctrl]+d 退出字符界面 用户 用户信息保存在/etc/passwd中 r…
[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式 5.Abort(abt):异常模式 6.Undefined(und):未定义指令模式 7.System(sys):系统模式 [ARM寄存器详解] ARM寄存器(37个) 通用寄存器(31个) 1.未分组通用寄存器(R0-R7) 2.分组通…
ARM芯片:2440(arm9) 6410(arm11) 210(cortex-A8) ARM核:arm9(arm-v4) arm11(arm-v6) cortex-A8(arm-v7) 指令架构:arm-v4 arm-v6 arm-v7 在一个芯片中最重要的是ARM核 ARM核演变 ARM经典: ARM7.ARM9.ARM11 Cortex系列: 1.Cortex-M:应用于工控 2.Cortex-R:应用于实时 3.Cortex-A:应用于多媒体 ARM芯片对比 芯片 2440 6410 4…
Eclipse集成开发环境的作用 可以编译程序,也可以对程序进行在线调试 集成开发环境 1.JLink连接开发板的JTAG 2.JLink连接PC的USB 3.eclipse软件 4.gdb server软件 5.JLink软件 安装步骤 1.格式化nand flash 2.连接JLink,并设置从nand flash启动 3.安装gdb server软件 1.tar zxvf linux-gdb-7.5.tar.gz 2.执行./build-all,编译gdb server软件,然后安装软件…
Makefile的用途 1.make能够使整个程序的编译.链接只需一个命令就可以完成 2.make的工作主要依赖于Makefile的文件.Makefile文件描述了整个程序的编译.链接等规则,使之自动完成. Makefile的构成 1.规则 targets(目标):prerequisties(依赖) command(命令) 注意:command前面是[tab]而不是空格,否则执行会出错 1.伪目标:只有目标和命令,没有依赖的规则称为伪目标,伪目标通常用 .PHONY:targets (也可以不写…
系统资源 处理器:三星 S3C2440A ARM9 内存:64M SDRAM Nor Flash:2MB Nand  Flash:256MB LCD:3.5寸 分辨率320*240 启动模式 从nand flash启动 从nor flash启动 操作系统 支持类型:Linux和WinCE 安装位置:nand flash 系统安装: 1.通过JTAG下载引导程序到nor flash中 2.通过usb下载操作系统到内存中 3.通过内存烧写操作系统到nand flash中…
2440启动流程 启动方式:nor flash启动.nand flash启动 地址布局: 选择nor flash启动时,SROM(nor flash)地址为0x00000000 选择nand flash启动时,SRAM(SteppingStone)地址为0x00000000 SDRAM(内存)地址为0x30000000 启动流程: 1.第一阶段 首先,处理器复制nand flash的BL1(前4KB)到Steppingstone中,执行BL1(bootloader第一部分).然后,复制BL2(b…
Bootloader的作用就是启动Linux内核 U-Boot简介 1.U-Boot是用于多种嵌入式CPU(ARM.x86.MIPS等)的bootloader程序,U-Boot不仅支持嵌入式Linux系统的引导,还支持VxWorks.QNX等多种嵌入式操作系统 2.uboot自动启动Linux的模式叫做自主模式:uboot在启动倒计时,停止启动的模式叫开发模式 建立uboot代码工程 1.安装source insight,方便进行大量代码的阅读 2.建立工程 project->new proje…
ARM机器码 1.汇编程序通过汇编器变成机器码,然后才能在ARM处理器上运行 2.ARM机器码是一个32位的数,被分成了多个段,每个段都有各自的含义 3.格式: cond:表示条件(4位) I:表示源操作数是寄存器还是立即数 opcode:表示指令类型(4位) S:表示是否影响cpsr寄存器 Rn:第一个源寄存器,有的指令中没有使用(4位) Rd:目的寄存器(4位) shift_operand:位移标志(4位)和第二个源寄存器或立即数(8位),所以mov指令中源操作数不能超过255 4.示例:…
算术和逻辑指令 1.mov 格式:mov {条件}{s} <dest>, <op> 作用:把一个值从一个地方移动到另一个地方,<dest>必须是寄存器 示例: @mov指令范例   “@”表示注释 mov r1, #8 mov r2, r1 2.mvn 格式:mvn {条件}{s} <dest>, <op> 作用:把一个值取反后从一个地方移动到另一个地方,<dest>必须是寄存器 示例: @“0b”表示二进制,”0x”表示十六进制,什…
汇编程序用途 1.在bootloader与内核初始化时,还没有建立C语言运行环境,需要用到汇编程序 2.在对访问效率要求很高的情况下,需要用到汇编程序 ARM汇编分类 1.ARM标准汇编:适合于Windows在平台下使用 2.GUN汇编:适合于Linux在平台下使用 汇编程序框架 完整版: .section .data 数据段 <初始化数据> .section bss bss段 <未初始化数据> .section .text 代码段 .global _start 通过global申…
寻找方式 1.处理器根据指令中给出的信息来找到指令所需操作数的方式 2.立即数寻址 操作数本身在指令中给出,立即数前加”#”表示立即数寻址,操作数在指令中 3.寄存器寻址 利用寄存器中的数值作为操作数,操作数在寄存器中 4.寄存器间接寻址 利用存放在寄存器中的内存地址中的数值作为操作数,在寄存器加上[],操作数存放在内存中 5.基址变址寻址 利用寄存器中保存的基地址和立即数中保存的偏移,找到内存地址中的数值作为操作数,操作数保存在内存中 6.相对寻址 利用PC指针的当前值做为基地址和指令中地址标…
笔记:Memory Notification: Library Cache Object loaded into SGA在警告日志中发现一些这样的警告信息:Mon Nov 21 14:24:22 2011Memory Notification: Library Cache Object loaded into SGAHeap size 5800K exceeds notification threshold (2048K)Details in trace file c:\oracle\produ…