11 2015 档案

摘要:为什么需要多寄存器访问指令?ldr/str每周期只能访问4字节内存,如果需要批量读取、写入内存时太慢,解决方案是stm/ld举例(uboot start.S 537行) stmia sp, {r0 - r12}将r0存入sp指向的内存处(假设为0x30001000);然后地址+4(即指向0x3000... 阅读全文
posted @ 2015-11-27 18:03 SuGuolin 阅读(196) 评论(0) 推荐(0) 编辑
摘要:协处理器cp15操作指令:mcr & mrc•mrc用于读取CP15中的寄存器•mcr用于写入CP15中的寄存器什么是协处理器?•SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务。•ARM设计上支持多达16个协处理器,但是一般SoC只实现其中的CP15.(cp:copro... 阅读全文
posted @ 2015-11-27 17:39 SuGuolin 阅读(158) 评论(0) 推荐(0) 编辑
摘要:常用ARM指令1:数据处理指令 •数据传输指令 mov mvn mov r1, r0 @两个寄存器之间数据传递 mov r1, #0xff @将立即数赋值给寄存器mov 和mvn用法一样,区别是mov是原封不动的传递,而mvn是按位取反后传递•算术指令 add sub rs... 阅读全文
posted @ 2015-11-27 11:21 SuGuolin 阅读(376) 评论(0) 推荐(0) 编辑
摘要:字符串和字符数组的细节 1、 sizeof是C语言的一个关键字,也是C语言的一个运算符(sizeof使用时是sizeof(类型或变量名),所以很多人误以为sizeof是函数,其实不是); sizeof运算符用来返回一个类型或者是变量所占用的内存字节数。为什么需要sizeof?主要... 阅读全文
posted @ 2015-11-25 23:55 SuGuolin 阅读(4759) 评论(0) 推荐(1) 编辑
摘要:核心板CPU 处理器:  Samsung S5PV210,基于 CortexTM-A8,运行主频 1GHz  内置 PowerVR SGX540 高性能图形引擎  支持流畅的 2D/3D 图形加速 ... 阅读全文
posted @ 2015-11-25 11:35 SuGuolin 阅读(409) 评论(0) 推荐(0) 编辑
摘要:(汇编)指令是CPU机器指令的助记符,经过编译过会得到一串0011组成的机器码,可以由CPU读取执行。(汇编)伪指令本质不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码。两种不同风格的ARM指令--ARM官方的ARM汇编风格:指令... 阅读全文
posted @ 2015-11-23 21:34 SuGuolin 阅读(318) 评论(0) 推荐(0) 编辑
摘要:1、什么是异常? 正常工作之外的流程都叫异常 异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续回来执行原来的工作 中断是异常的一种2、异常向量表 所有的CPU都有异常向量表,这是CPU设计时就设定好,是硬件决定的。 当异常发生时,CPU会自动动作(PC跳转到异常向量处处理异常,... 阅读全文
posted @ 2015-11-19 17:52 SuGuolin 阅读(324) 评论(0) 推荐(0) 编辑
摘要:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。6个状态寄存器。这些寄存器都是32位寄存器。通用寄存器(R0-R15)可分为三类 :不分组寄存器R0~R7; 分组寄存器R8~R14; ... 阅读全文
posted @ 2015-11-19 14:40 SuGuolin 阅读(1013) 评论(0) 推荐(0) 编辑
摘要:ARM采用的是32位架构ARM阅读 --Byte: 8 bits --Halfword: 16 bits(2 byte) 半字 --Word: 32 bits(4 byte)大部分ARM core提供: core(核心) --ARM指令集(32 bit) (有些占内存、时间... 阅读全文
posted @ 2015-11-19 11:46 SuGuolin 阅读(2717) 评论(0) 推荐(0) 编辑
摘要:code是KEIL C51 扩展的关键字,用code修饰的变量将会被放到CODE区里。但C语里的const关键字好像也有定义不能改变的变量的功能,这两个关键字有什么区别呢?在帮助手册里查找const,可以找到以下的描述1 Variables declared with the const typ... 阅读全文
posted @ 2015-11-19 09:11 SuGuolin 阅读(9829) 评论(1) 推荐(0) 编辑
摘要:侃侃单片机的裸奔程序的框架!以下是我总结的一些东西,不合乎之处来请大家指点呀,本人第二次在21ic发帖,希望大家鼓励鼓励呀!!从07年参加全国大学生电子设计大赛初次接触单片机开发至今已经有4年了,初学单片机时,都会纠结于其各个模块功能的应用,如串口(232,485)对各种功能IC的控制,电机控制PW... 阅读全文
posted @ 2015-11-19 09:01 SuGuolin 阅读(1003) 评论(0) 推荐(0) 编辑
摘要:存储数据的模式1、大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;2、小端模式,是指数据的高位保存在内存的高地址中,而数 据的低位保存在内存的低地址中,这种存储模式将地址的... 阅读全文
posted @ 2015-11-19 08:56 SuGuolin 阅读(384) 评论(0) 推荐(0) 编辑
摘要:内存对齐,memory alignment.为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。内存对齐一般讲就是cpu access memory的效率(提高运行速度)和准确性... 阅读全文
posted @ 2015-11-18 18:15 SuGuolin 阅读(558) 评论(0) 推荐(0) 编辑
摘要:1.通道选择与探头输入通道至少有3种选择方式:通道1(CH1)、通道2(CH2)、双通道(DUAL)。 选择通道1时,示波器仅显示通道1的信号。选择通道2时,示波器仅显示通道2的信号。选择双通道时,示波器同时显示CH1、CH2信号。测试信号时,首先要将示波器的地连接在一起。根据输入通道的选择,将示... 阅读全文
posted @ 2015-11-18 16:25 SuGuolin 阅读(1206) 评论(0) 推荐(0) 编辑
摘要:定义结构变量的一般格式为: struct 结构名 { 类型变量名; 类型变量名; ... } 结构变量; 结构名是结构的标识符不是变量名。 类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和无值型)。 构成结构的每一个类型变量称为结构成员, 它象数组的元素一样... 阅读全文
posted @ 2015-11-18 16:22 SuGuolin 阅读(234) 评论(0) 推荐(0) 编辑
摘要:关于51单片机内存问题,一直是个疑惑大家的问题,因为51单片机是个很另类的单片机。下面我给楼主讲解一下:51单片机之所以另类,是因为,他寻址内存的空间,不是靠总线,是用指令的方式。51单片机有以下几个内存模块组成:1】ROM或者Flash,叫程序存储区,你写的程序是存在这里面的,上电后从这里面执行。... 阅读全文
posted @ 2015-11-18 16:19 SuGuolin 阅读(3536) 评论(1) 推荐(0) 编辑
摘要:内存: SRAM 静态内存 特点就是容量小、价格高、优点是不需要软件初始化直接上电就能用 DRAM 动态内存 特点就是容量大、价格低、缺点就是上电后不能直接使用,需要软件初始化后才可以使用单片机中:内存需求小、而且希望开发尽量简单,适合全部SRAMPC中: 内存需求大、而且软件复... 阅读全文
posted @ 2015-11-17 11:17 SuGuolin 阅读(389) 评论(0) 推荐(0) 编辑
摘要:程序执行需要内存支持对程序来说,内存就是程序的立足之地(程序是被放在内存中运行的);程序运行时需要内存来存储一下临时的变量。内存管理最终是由操作系统完成的内存本身在物理上是一个硬件器件,由硬件系统提供。内存是由操作系统统一管理。为了内存管理方便又合理,操作系统提供了多种机制来让我们应用程序使用内存。... 阅读全文
posted @ 2015-11-17 10:27 SuGuolin 阅读(237) 评论(0) 推荐(0) 编辑
摘要:typedef 定义(或者叫重命名)类型而不是变量1、类型是一个数据模板,变量是一个实在的数据。类型是不占内存的,而变量是占内存的。2、面向对象的语言中:类型的类class,变量就是对象。#include//结构体类型的定义// struct student// { // char name[20]... 阅读全文
posted @ 2015-11-16 11:27 SuGuolin 阅读(275) 评论(0) 推荐(0) 编辑
摘要:特殊功能寄存器与外设绑定,通用寄存器是与CPU绑定。 ARM是RISC架构 常用ARM汇编指令只有二三十条 ARM是低功耗CPU ARM的架构非常适合单片机、嵌入式、尤其是物联网领域;而服务器等高性能领域目前主导还是Intel 大部分ARM都是32位架构,现在少数有64位,早期好像还有16位的。 ... 阅读全文
posted @ 2015-11-15 17:03 SuGuolin 阅读(340) 评论(0) 推荐(0) 编辑
摘要:SRAM比较贵,访问方便,发出地址就可以,SDRAM比较便宜2440的启动方式: 1 、NOR启动 0地址指向NOR(BANK0) 2 、NANA启动 0地址指向片内的SRAM(steppingstone)、CPU还会把NAND的前4k复制到片内RAM、然后再从片内的SRAM... 阅读全文
posted @ 2015-11-15 16:40 SuGuolin 阅读(258) 评论(0) 推荐(0) 编辑
摘要:(1)指针数组的实质是一个数组,这个数组中存储的内容全部是指针变量。(2)数组指针的实质是一个指针,这个指针指向的是一个数组。C语言本身是强类型语言(每一个变量都有自己的变量类型),编译器可以帮我们做严格的类型检查。数组指针分析指针数组与数组指针的表达式(1) int *p[5]; int... 阅读全文
posted @ 2015-11-13 11:07 SuGuolin 阅读(140) 评论(0) 推荐(0) 编辑
摘要:1、指针数组的实质是一个数组,这个数组中存储的内容全部是指针变量。2、数组指针的实质是一个指针,这个指针指向的是一个数组。int *p[5]; int (*p)[5]; int *(p[5]);我们定义一个符号时,关键在于:首先要搞清楚你定义的符号是谁(第一步:核心);其次再来看谁跟核心最近、谁... 阅读全文
posted @ 2015-11-12 18:01 SuGuolin 阅读(155) 评论(0) 推荐(0) 编辑
摘要:int a;int *p;p = &a;*p = 0x100; //a=0x100p = (int *)0x56000050;*p =0x100;*( ( int * ) 0x56000050) = 0x100加上volatile是为了防止编译器优化这个寄存器#define G... 阅读全文
posted @ 2015-11-11 22:15 SuGuolin 阅读(1053) 评论(0) 推荐(0) 编辑
摘要:1、软件初始化 1 设置栈 (SP→内存(SRAM)) 2 调用main() 3 清理工作2、硬件初始化 1 关闭看门狗 2 初始化时钟 3 初始化SDRAM.text.global _start_start: ldr r0, =0x53000000 ... 阅读全文
posted @ 2015-11-11 22:07 SuGuolin 阅读(1125) 评论(0) 推荐(0) 编辑
摘要:1、NAAD启动(NAND Flash不能像地址总线一样读,类似于像串口一样) 1、NAND前4k复制到SRAM(其它的要通过前4k代码的执行把剩下的拷贝到SDRAM) 2、CPU从0地址执行2、NOR启动(NOR Flash可以像内存一样读数据,但是不能像内存一样的写数据,需要命令系列进行擦写... 阅读全文
posted @ 2015-11-11 21:22 SuGuolin 阅读(242) 评论(0) 推荐(0) 编辑
摘要:在Ubuntu中系统是默认禁止root用户登入操作,要使用超级用户可以加sudo例: sudo chown book:book /work -R或者切换到root su root password:123456 阅读全文
posted @ 2015-11-10 20:33 SuGuolin 阅读(178) 评论(0) 推荐(0) 编辑
摘要:#include #include char Char_arr[3][10]= {"Hell0","wWorld"};void main(){ printf("str1 = %s \n", &Char_arr[0][0]); printf("str2 = %s \n", &Char_... 阅读全文
posted @ 2015-11-06 16:54 SuGuolin 阅读(895) 评论(0) 推荐(0) 编辑
摘要:ifconfig 查看IPsudo ifconfig eth0 192.168.1.118sudo ifconfig eth0 downsudo ifconfig eth0 upping (wionds ip) 阅读全文
posted @ 2015-11-02 21:09 SuGuolin 阅读(1661) 评论(0) 推荐(0) 编辑