宏定义中#和##符号的使用和宏定义展开

有一道经典的C语言问题,关于宏定义中#和##符号的使用和宏定义展开问题   程序如下: #include #define f(a,b) a##b #define g(a)  #a #define h(a) g(a)   int main() {         printf(...

2015-12-25 20:24:48

阅读数:299

评论数:0

LDR ADR

LDR 是ARM中的指令,也是伪指令。 当用 LDR r, =imd  // r 为寄存器, imd为立即数 LDR 是一条伪指令。编译器会根据 立即数的大小,决定用 ldr 指令或者是mov或mvn指令。 当imd能用mov或者mvn操作时,就将它翻译成一条mov或mvn指令。当imd大于...

2015-12-20 20:20:52

阅读数:289

评论数:0

uboot system.map

背景:正在努力看u-boot代码,已经研究了两三天,内容太多,一时难理清头绪。不过有一定的linux基础,也懂点gnu扩展,elf格式,连接器还没有深入研究。 Linux编译内核后会生成System.map,u-boot编译后也生成System.map——还有u-boot.map,后者比前者多一...

2015-12-20 17:36:56

阅读数:344

评论数:0

ARM汇编中B跳转指令和LDR跳转的区别

B跳转指令是代码位置无关的,经过汇编后会替换为当前PC值加(减)一个修正值,不管这条指令是在哪一个地址执行,都能跳转到指定的位置。B只能在当前PC的32M范围内跳转,LDR只能在当前PC的4KB(0xfff范围)跳转。LDRPC,=xxx指令将向PC直接装载一个标号xxx的值,但标号经过编译后将被...

2015-12-17 13:06:28

阅读数:502

评论数:0

linux内核的三种调度方法

1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务 3,SCHED_RR实时调度策略,时间片轮转    实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,nice越小,counter越...

2015-12-16 21:06:45

阅读数:279

评论数:0

什么是真正的实时操作系统

什么是真正的实时操作系统 做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks。实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂。毕竟如果不做类似的产品,平时接触的机会很少...

2015-12-16 21:03:24

阅读数:2049

评论数:0

Linux操作系统实时性

一、实时系统基本概念 什么是实时系统,POSIX作了这样的定义:指能够在限定的响应时间内提供所需水平服务的系统。另个一被Donald Gillies提出定义为:一个实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。实时...

2015-12-16 16:52:08

阅读数:347

评论数:0

uboot makefile分析

U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。 U-BOOT的下载地址: http://sourceforge.net/projects/u-boot 我下载的是1.1.6版本,一开始在FTP上...

2015-12-15 20:35:17

阅读数:205

评论数:0

uboot mmc 命令

mmc read addr blk# cnt mmc write addr blk# cnt mmc erase blk# cnt mmc rescan mmc part - lists available partition on current mmc device mmc dev ...

2015-12-15 16:54:51

阅读数:208

评论数:0

Weak Alias

Weak Alias 跟 Weak Reference 完全没有任何关系,不过是我在看到 Weak Reference的时候想到的而已。 Weak Alias 是 gcc扩展里的东西,实际上是函数的属性。这个东西在库的实现里面可能会经常用到,比如 glibc 里面就用了不少。抄录一段gcc 手册...

2015-12-15 16:03:13

阅读数:147

评论数:0

.balignl 16,0xdeadbeef

.balignl 16,0xdeadbeef       0xdeadbeef,是个单词组,首先要弄明白.balignl的意思,这个其实应该算是一个伪操作符,是编译器来实现其功能的。.balignl是.balign的变体,.balign是意思是,在以当前地址开始,地址计数器必须是以第一个参数为整数...

2015-12-14 20:57:14

阅读数:214

评论数:0

linux socket编程

转载自: 作者:吴秦 出处:http://www.cnblogs.com/skynet/ 本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的sock...

2015-12-01 16:41:16

阅读数:193

评论数:0

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