自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 arm linux中断的理解

arm中断后,硬件会自动跳到中断向量表(这里注意是自动)。中断向量表是放在0地址开始的位置,如下表所示。如上电时,程序会跳到0x00000000处执行,然后在该处放一条跳转指令,跳转到中断服务函数,如B Reset。然后在中断服务函数中处理。中断发生后,当然要保存现场,否则中断处理函数会破坏被中断之前的寄存器。哪些寄存器需要保存?淡然已经使用了的寄存器需要保存,但是想要弄清楚哪些寄存器需要保...

2019-09-24 13:14:52 378

原创 进入中断和退出中断的过程

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 3216 1

原创 举例说明段寻址方式VA到PA的转换过程

首先,须明确几个重要概念:1 虚拟地址映射到哪个物理地址是由程序员决定的,如果程序不指定映射到哪里去,是没有意义的,所以这是一个设计输入。2 待映射的虚拟地址可以随意选择,转换到哪个物理地址也可以随意选择,但是一旦选择了一个待转换的虚拟地址时,从该虚拟地址开始的1M空间都会被一一映射到被选择的物理地址开始的1M空间。要特别注意随意选择和一一对应的理解。3 一级页表中存放了4096个描述符,...

2019-09-03 20:07:12 1691 1

原创 MMU的理解

1 MMU是什么?有什么功能?MMU是内存管理单元。MMU可以实现虚拟地址到物理地址的转换(映射)。2 为什么要使用MMU为了解决以下两个问题:a)为了在小内存中运行大程序。实际情况中,程序容量大于内存容量。b)系统中有很多的程序需要同时执行,它们要求的内存空间比实际的内存空间大。3 MMU为什么就能解决以上2个问题呢?MMU可以虚拟地址空间,将地址空间放大。作为32位系统,其虚拟地...

2019-09-02 20:22:15 3611

原创 连接地址与位置无关指令

在点灯程序中,想看看超过地址空间的结果,于是做了个试验,修改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 750

原创 .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 2341

原创 韦东山视频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 695 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 4313

原创 vi中常用命令

2019-08-22 15:38:16 77

原创 linux常用命令

2019-08-22 15:36:19 55

原创 解决mobaxterm与虚拟机连接后短时间内又断开的问题

这两天被这个问题困扰了很久,一开始一直怀疑是ssh间隔时间长了会被关闭进程导致的,按照网上介绍的方法更改了ssh_config和sshd_config文件中的内容,但是始终没解决问题。后来突然想起每次连接后都需要强制设置IP地址,而且设置IP后短时间内又查不到IP地址了(使用ifconfig命令).强制设置IP(使用sudo ifconfig eth0 192.168.xxx.xxx)后,又可以与...

2019-08-22 13:35:46 3280 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 12784 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 3351

原创 arm寄存器

ARM寄存器有37个。31个通用寄存器+6个状态寄存器。7种处理器模式对应7组寄存器组。通用寄存器可分为备份寄存器和未备份寄存器。未备份寄存器为R0-R7,备份寄存器为R8-R12。重点是寄存器R13,R14和R15。1 、R13:栈指针。每种异常模式都有其专用的栈地址。应用程序在初始化时,就把各种异常模式下的栈指针指向该异常模式专用栈地址。2、R14:链接寄存器存放返回地址。分为调用子程...

2019-08-05 20:33:40 125

原创 ARM处理器运行模式

ARM处理器运行模式1、ARM处理器有7种运行模式:1)用户模式2)特权模式3)中断模式4)快速中断模式5)终止模式6)未定义指令模式7)系统模式其中,除用户模式外,其他6种模式称为特权模式。6种特权模式中,除系统模式外,其他5种模式称为异常模式。特权模式下可以访问系统所有资源。而用户模式不能访问一些受操作系统保护的资源。2、运行模式转换各运行模式之间可以互相转换,转换的途径...

2019-08-04 16:45:02 1260

原创 ubuntu桥接、NAT及host-only

ubuntu桥接与NAT及host-only这三种模式是宿主机与虚拟机之间网络通信的方式1、桥接模式这是最简单的一种模式。该模式下,宿主机于虚拟机处于同一个网段,宿主机于虚拟机处于同等地位。物理机上的vmnet0作为虚拟网卡,用于桥接虚拟机与宿主机。网络拓扑如下图所示。2、NAT模式NAT(NET ADDRESS TRANSMIT,网络地址转换)NAT模式下,虚拟机与宿主机处于不同的...

2019-07-31 11:00:49 268

原创 简单的指针链表学习

简单的指针链表指针链表用到了指针和结构体。一.结构体使用其中结构体的定义方式有多种,但是一不小心就会搞错。下面总结如下:1.最可能出错的地方是先定义结构体,再对其整体进行初始化。如果在定义结构体变量的时候没有初始化,那么后面就不能全部一起初始化了;这样编译会出错。正确的办法是定义变量后马上初始化。如果实在要先定义,再初始化,也只能对结构体内的变量逐个初始化。举例如下:struct VAL...

2019-07-06 15:46:29 143

原创 labview ini配置文件

labview中ini配置文件用于保存设置数据到本地文件,并可在程序运行时从本地文件读取配置参数,主要用于保存重要变量。ini文件包含段、键值。配置文件的使用将不需要通过编辑代码改变应用程序的配置,这将大大节约时间。主要包含以下几个常用函数:打开和关闭配置文件在访问完配置文件后,必须使用关闭配置文件函数,以将更改的内容保存到本地。读写键值这些VI具有段值和键值的读写。可设置成多态...

2019-07-04 15:21:51 2839

原创 用指针交换两个参数的疑问

用指针交换两个参数的疑问先上正确的代码(交换函数里用到了很多的打印语句,主要是要对比错误的代码,以观察地址和值的变化),正确代码能实现两个参数的交换,错误的代码则不能实现。现在有2个疑问:1为什么传递的地址发生了变化?比如传递之前, a的地址为0x0012ff44,传递后(num1)地址变为了0012feec.2为什么正确的代码和错误的代码,其c,num1,num2的地址和值均一样,但是运行...

2019-07-02 19:49:58 185

原创 从今天开始,记录技术

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-07-02 15:01:43 76

ADC0831+LCD016做的数字表

该例子利用ADC0831模数转换芯片将电压转换为数字信号,并通过液晶显示器LCD016显示出来。在PROTEUS中仿真成功,有详细的源程序及注释。

2008-11-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除