![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
人生过半
这个作者很懒,什么都没留下…
展开
-
ARM处理器运行模式
ARM处理器运行模式1、ARM处理器有7种运行模式:1)用户模式2)特权模式3)中断模式4)快速中断模式5)终止模式6)未定义指令模式7)系统模式其中,除用户模式外,其他6种模式称为特权模式。6种特权模式中,除系统模式外,其他5种模式称为异常模式。特权模式下可以访问系统所有资源。而用户模式不能访问一些受操作系统保护的资源。2、运行模式转换各运行模式之间可以互相转换,转换的途径...原创 2019-08-04 16:45:02 · 1283 阅读 · 0 评论 -
进入中断和退出中断的过程
1 进入中断a)将PC+8或PC+4()的值存放到LR_异常 寄存器中b)将CPSR保存到SPSR_异常 寄存器中c)修改CPSR的[4:0]位,将其修改为对应的中断d)跳到相应的中断向量表(硬件完成)2 退出中断a)将LR_异常 寄存器的减去一个值(取决于arm状态还是thum状态见下表)值放到PC中b)将SPSR_异常 寄存器中的值放到CPSRc)清除中断...原创 2019-09-04 16:52:46 · 3256 阅读 · 1 评论 -
举例说明段寻址方式VA到PA的转换过程
首先,须明确几个重要概念:1 虚拟地址映射到哪个物理地址是由程序员决定的,如果程序不指定映射到哪里去,是没有意义的,所以这是一个设计输入。2 待映射的虚拟地址可以随意选择,转换到哪个物理地址也可以随意选择,但是一旦选择了一个待转换的虚拟地址时,从该虚拟地址开始的1M空间都会被一一映射到被选择的物理地址开始的1M空间。要特别注意随意选择和一一对应的理解。3 一级页表中存放了4096个描述符,...原创 2019-09-03 20:07:12 · 1722 阅读 · 1 评论 -
MMU的理解
1 MMU是什么?有什么功能?MMU是内存管理单元。MMU可以实现虚拟地址到物理地址的转换(映射)。2 为什么要使用MMU为了解决以下两个问题:a)为了在小内存中运行大程序。实际情况中,程序容量大于内存容量。b)系统中有很多的程序需要同时执行,它们要求的内存空间比实际的内存空间大。3 MMU为什么就能解决以上2个问题呢?MMU可以虚拟地址空间,将地址空间放大。作为32位系统,其虚拟地...原创 2019-09-02 20:22:15 · 3799 阅读 · 0 评论 -
连接地址与位置无关指令
在点灯程序中,想看看超过地址空间的结果,于是做了个试验,修改Makefile中的连接地址为0xfffffffc,如下所示。root@ubuntu:~/work/led_on_c# cat Makefileall:arm-linux-gcc -c -o led.o led.carm-linux-gcc -c -o start.o start.Sarm-linux-ld -Ttext 0xf...原创 2019-09-02 18:39:03 · 782 阅读 · 0 评论 -
.bin .o .elf文件的关系
今天错把.o文件烧写到nand,问了韦老师才知道要烧写.bin文件,实在是惭愧。下面描述下三者之间的关系。1 .bin文件.bin文件是linux下可执行文件,相当于windows下的.exe文件。bin文件是二进制文件,里面没有地址标记。2. o文件目标文件。相当于windows下的obj文件。3. elf文件elf文件可以在linux上运行,但不能在裸机下运行...原创 2019-08-27 13:49:53 · 2375 阅读 · 0 评论 -
韦东山视频led_on_c程序总结
看了韦东山的点灯C程序后,为加深印象,现回顾总结如下:main.c代码如下:int main(){unsigned int *pGPFCON = (unsigned int *)0x56000050;unsigned int *pGPFDAT = (unsigned int *)0x56000054;/* 配置GPF4为输出引脚 */*pGPFCON = 0x100;/* 设置G...原创 2019-08-26 20:44:55 · 703 阅读 · 1 评论 -
解决arm-linux-gcc:command not found的问题
明明安装了编译器,使用echo PATH命令显示编译器路径为/home/tools/gcc−3.4.5−glibc−2.3.6/bin,且在该目录下有arm−linux−gcc文件,但是使用arm−linux−gcc命令却找不到命令。最开始怀疑是路径问题,于是把待编译的文件拷贝到/home/tools/gcc−3.4.5−glibc−2.3.6目录下,但是还是找不到命令。网上搜索解决办法,有一篇文...原创 2019-08-26 10:08:23 · 4356 阅读 · 0 评论 -
vi中常用命令
原创 2019-08-22 15:38:16 · 82 阅读 · 0 评论 -
linux常用命令
原创 2019-08-22 15:36:19 · 57 阅读 · 0 评论 -
解决mobaxterm与虚拟机连接后短时间内又断开的问题
这两天被这个问题困扰了很久,一开始一直怀疑是ssh间隔时间长了会被关闭进程导致的,按照网上介绍的方法更改了ssh_config和sshd_config文件中的内容,但是始终没解决问题。后来突然想起每次连接后都需要强制设置IP地址,而且设置IP后短时间内又查不到IP地址了(使用ifconfig命令).强制设置IP(使用sudo ifconfig eth0 192.168.xxx.xxx)后,又可以与...原创 2019-08-22 13:35:46 · 3315 阅读 · 1 评论 -
解决mobaxterm无法与虚拟机进行ssh通信
虚拟机与主机之间已经能互相PING通,但是在mobaxterm中无法用ssh连接到虚拟机。网上查找了原因,说是虚拟机可能没有开启ssh服务。用命令查看ssh状态,果然是没有开启。没有开启就先开启ssh吧。1、安装openssh-server输入命令sudo apt-get openssh-server。这条命令就是通过互联网安装openssh-server,结果显示无法连接到网址,说白了就是无...原创 2019-08-21 15:09:43 · 12939 阅读 · 2 评论 -
解决ubuntu桥接模式下虚拟机和宿主机之间不能PING通的问题
虚拟机是ubuntu9.1,在网络桥接模式下,无法与主机之间互相ping通。且用ifconfig命令无法查看到eth0的IP地址。1、在windows下打开网络配置,找到VMnet1网卡,勾选vmware bridge protocol。重启虚拟机2、使用sudo ifconfig eth0 192.168.1.xxx,将虚拟机IP地址强制指定。这样做的话每次虚拟机重启后还要重新设置IP地址。...原创 2019-08-21 14:15:12 · 3400 阅读 · 0 评论 -
arm寄存器
ARM寄存器有37个。31个通用寄存器+6个状态寄存器。7种处理器模式对应7组寄存器组。通用寄存器可分为备份寄存器和未备份寄存器。未备份寄存器为R0-R7,备份寄存器为R8-R12。重点是寄存器R13,R14和R15。1 、R13:栈指针。每种异常模式都有其专用的栈地址。应用程序在初始化时,就把各种异常模式下的栈指针指向该异常模式专用栈地址。2、R14:链接寄存器存放返回地址。分为调用子程...原创 2019-08-05 20:33:40 · 138 阅读 · 0 评论 -
arm linux中断的理解
arm中断后,硬件会自动跳到中断向量表(这里注意是自动)。中断向量表是放在0地址开始的位置,如下表所示。如上电时,程序会跳到0x00000000处执行,然后在该处放一条跳转指令,跳转到中断服务函数,如B Reset。然后在中断服务函数中处理。中断发生后,当然要保存现场,否则中断处理函数会破坏被中断之前的寄存器。哪些寄存器需要保存?淡然已经使用了的寄存器需要保存,但是想要弄清楚哪些寄存器需要保...原创 2019-09-24 13:14:52 · 383 阅读 · 0 评论