[ arm-linux裸版编程 ]
过去不再从来
反应有点慢
展开
-
c语言中的数据类型(小结3)
C语言中的数据类型分类: a)基本 Int Char Short Long b)结合 * [ ] c)自定义: Enum Struct Union原创 2013-11-07 18:14:21 · 557 阅读 · 0 评论 -
key_printf(小结8-5)
概要: 我们用一种论循的方式,检查按键按下的时候,我们就打印:hello my_key 下面是按健的三个寄存器: Register Address R/W Description GPNCON 0x7F008830 R/W Port N Configuration Register GPNDAT 0x7F008834 R/W原创 2013-11-12 21:53:13 · 651 阅读 · 0 评论 -
led驱动(小结8-3)
四展灯都点亮: 1 .section .text 2 .global main 3 main: 4 mov ip,sp 5 stmfd sp!,{fd,ip,lr} 6 sub fp,ip,#4 7 //GPMCON =0x1111 8 9 ldr r0,=0x7f008原创 2013-11-12 13:27:59 · 647 阅读 · 0 评论 -
led_key_printf(小例8-6)
最开始,开灯;检查到按键,就打印一句话。 1 //led 2 #define GPMCON (*(volatile unsigned long *)0x7F008820) 3 #define GPMDAT (*(volatile unsigned long *)0x7F008824) 4 //key 5 #define GPNCON (*(volatile u原创 2013-11-12 22:06:10 · 739 阅读 · 0 评论 -
buzzer(小结8-4)
1 #buzzer 2 .section .text 3 .global main 4 main: 5 mov ip,sp 6 stmdb sp!,{fp,ip,lr} 7 sub fp,ip,#4 8 9 ldr r0,=0x7F0080A0 10 #ldr r1原创 2013-11-12 18:27:37 · 1232 阅读 · 0 评论 -
led驱动(小结8-2)
1 #高端,点亮LED 2 .section .text 3 .global main 4 main: 5 mov ip,sp 6 stmdb sp!,{fp,ip,lr} 7 sub fp,ip,#4 8 9 10 11 #*0x7F008820 &=~0xf先将低四位清0, 12原创 2013-11-12 13:04:35 · 710 阅读 · 0 评论 -
arm中断(小结10)
中断:分三部分 step 1 :set arm cpsr mrs r0,cpsr bic r0,r0,#0x80取0x80的非,清楚第七位 step 2:set vic vectored iterrupt cont step 3:irq soure ------------------------ cpsr第七位 ---------------------原创 2013-11-12 10:45:22 · 812 阅读 · 0 评论 -
外部中断(小结12)
外部中断: 在soc外面,按键 datashet:359页 ------------------------ cpsr第七位 ------------------------ 状态 VICxIRQSTATUS VICxIRQSTATUS /***内部中断控制管理器***/ 选择 VICxINTSELECT 使能 VICxINTENABLE 记录 VICxRAWINTR原创 2013-11-12 11:18:59 · 781 阅读 · 0 评论 -
arm的中断及模式(小结9)
arm的中断及模式: 1.中断:模式 msr mrs 上面两条只与cpsr,读cpsr中的低5位来知道到当前的模式 mrsr0,cpsr 将cpsr存到r0 msr cpsr,r0 2. 从一个模式进入另一个模式:将当前模式的cpsr保存到我们要进入的模式的spsr 将当前模式的pc保存到我们要进入的模式的lr 当我们从另一个模式回到之前的那一个模式时: mov原创 2013-11-12 10:41:07 · 729 阅读 · 0 评论 -
led驱动(小结8)
今天学习驱动:led,key,buzzer 终见驱动: 1.点亮LED: ctrl +f==>在linux中的pdf中的一个搜索功能。 多功能引脚:gpio: input :表示检测 output:表示控制 LED1: GPLPUD上拉电阻 Register Address R/W Description原创 2013-11-09 21:26:01 · 696 阅读 · 0 评论 -
arm过程调用规范(小结7)
有关arm11汇编: 1.apcs:arm process call standard 2.arm寄存器的通用寄存器:(两套对应的名字,可以通用) r0 ~r3 r4~r9 r10 r11 r12 r13 r14 r15 a1~a4 v1~v6 sl fp lp sp lr pc -->c语言原创 2013-11-09 21:07:34 · 931 阅读 · 0 评论 -
led驱动(例子:8)
我的第一个驱动:led 1.先查看我的实物,开发板上面的led的名字,并下记(叫led1) (我的s3c6410开发板,这里的原理图分为底板与核心板;led实物在我们的底板上面,而arm的soc在核心板上面;我们要控制led,就要知道我们led实物与arm是怎么相连的) 2.再在我们的底板原理图上,按ctrl+f搜索上面记下的名字(led1得到NLED1) 3.然后在梳心板原理图上原创 2013-11-10 00:16:46 · 785 阅读 · 0 评论 -
面向对象程序设计(维基百科)
面向对象程序设计(英语:Object-oriented programming,缩写:OOP),指一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的集合。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。[1] 面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数转载 2013-11-08 10:27:40 · 1929 阅读 · 0 评论 -
小结(6)
s3c6410环境搭建: 1.烧写SD卡 2.从SD卡启动 3.将u-boot-nand.bin tftp到内存,然后写入nand 4.从nand flash 启动 5.配制tftp /etc/xinetd.d/tftp service xinetd restart 6.通过tftp将uImage下入到内存 7.bootm +地址,从u-boot跳到内存中uImage处执原创 2013-11-08 23:00:36 · 573 阅读 · 0 评论 -
一个makefiel(小结5)
makefile: 当前目录的文件:list.c list.h test.c CC = gcc OBJ = test.o link.o test: $(OBJ) $(CC) $^ -o $@ //下面都是注释 #test.o: test.c # $(CC) $ #link.o: link.c # $(CC) li原创 2013-11-08 22:55:41 · 600 阅读 · 0 评论 -
typedef(小结4)
1.需求分析->概要设计->详细设计->编码->测试 2.工作两三年,头文件与库,再后来依赖,再后来安全.(老刘语) 3. #include系统指定头文件目录 #include ""由用户自己指定 4.***************************************** 返回类型为函数指针,的函数 int (*p(int ,char *))(int)原创 2013-11-08 10:18:05 · 606 阅读 · 0 评论 -
程序中的内存(小结1)
从今天开始花点时间,小结一下,这一段时间,跟老刘学习的课程:总结比学习新的东西更重要: 内存: 1.vi test.c .gcc -c test.c -o test.o :(编译) 1生成符号(函数如main和全局变量) 2翻译成汇编,检查语法错误 .gcc test.o -o test:(链接) 1,找到所原创 2013-11-07 17:53:08 · 594 阅读 · 0 评论 -
回调函数与函数指针(小结2)
回调函数通常与函数指针一同出现; 为了我们要实现一种机制(而不是策略),通过这样一个种回调的形式,给我们来搭一个架构;具体的实现,我们交给一个函数指针所指向的函数。 通过这样的一种机制,我们可以隐藏,我们的具体实现。 .函数指针*********** .回调函数*********** void hell(); void call(void (*fp)());//声明一个回调函数原创 2013-11-07 18:09:06 · 617 阅读 · 0 评论 -
模式(小例9-2)
今天在这里: 先打印这cpsr;通过一条未定义指令,进入异常处里,打印cpsr,又回到之前的那个模式;然后再打印cpsr test.c=>vector.s=>test.c==>结束 test.c如下: int (*printf)(char *,...) = (void *)0x57e11d4c;//将一个函数指针指向0x57e11d4原创 2013-11-12 23:34:19 · 1033 阅读 · 0 评论