STARTUP.A51//启动文件.清理RAM.设置堆栈等.即执行完start.a51后跳转到.c文件的main函数 //特殊寄存器的字节地址和位地址,sfr定义字节变量、sbit定义位变量,用通俗名作为变量名,并赋地址值,从而用名称来使用这些特殊寄存器。 //定义了一些外部函数,在C51单片机编程...
分类:
其他好文 时间:
2014-07-19 20:19:36
阅读次数:
313
高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx 开始记录宏,并将结果存入寄存器x q 退出记录模式 @x 播放记录在x寄存器中的宏命令 稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模 式...
分类:
系统相关 时间:
2014-07-19 17:08:12
阅读次数:
324
Linux应用层想要操作kernel层的API,比如想操作相关GPIO或寄存器,可以通过写一个字符设备驱动来实现。
1、先在rootfs中的 /dev/ 下生成一个字符设备。注意主设备号 和 从设备号。可用如下shell脚本生成:
if [ ! -e audioIN ];then
sudo mknod audioIN c 240 0
fi
生成的设备为 /d...
分类:
系统相关 时间:
2014-07-18 22:36:04
阅读次数:
349
ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。ioctl(keyFd, FIONREAD, &b)得到缓冲区里有多少字节要被读取,然后将字节数放入b里面。接下来就能...
分类:
其他好文 时间:
2014-07-18 18:21:55
阅读次数:
245
#include uint32_t arg = 0x12345678;uint32_t getArgVal0( uint32_t * arg){ return *arg;}uint32_t getArgVal( uint32_t arg){ return getArgVal0( &arg );}.....
分类:
其他好文 时间:
2014-07-18 14:39:54
阅读次数:
187
FPGA 设计中的流量,时滞,时序
流量:每个时钟周期能够传输的数据位。
时滞:数据从输入到输出需要经历的时钟周期;
时序:两个元件之间的最大延迟,他决定系统的最高时钟速度。
1 采用流水线可以提高 流量;
例如计算X^3,迭代结构
流水线:
此时
流量=8/1
时滞=3
时序=乘法器延迟
2 如果要求低时滞则可以去掉寄存器
3 降低时序,提高...
分类:
其他好文 时间:
2014-07-17 16:31:57
阅读次数:
202
JVM运行时数据区的内存模型由五部分组成:【1】方法区【2】堆【3】JAVA栈【4】PC寄存器【5】本地方法栈对于String s = "haha" ,它的虚拟机指令:0: ldc #16; //String haha2: astore_13: return对于上面虚拟机指令,其各自的指令流程在《深...
分类:
编程语言 时间:
2014-07-16 18:48:18
阅读次数:
217
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) ...
分类:
其他好文 时间:
2014-07-16 17:49:25
阅读次数:
190
CPU是中央处理单元(CentralProcessingUnit)的缩写,被人们俗称为“计算机的大脑”,其负责处理、运算计算机内部的所有数据!CPU从内存或缓存中取出指令,放入指令寄存器,并对指令译码分解成一系列的微操作,然后发出各种控制命令,执行微操作系列!CPU从内存中调用数据,为什..
分类:
其他好文 时间:
2014-07-16 16:31:44
阅读次数:
165