摘要:
ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符 0 NUT 32 (space) 64 @ 96 、 1 SOH 33 ! 65 A 97 a 2 STX 34 " 66 B 98 b 3 ETX 35 # 67 C 99 c 4 EOT 36 $ 68 D 100 阅读全文
摘要:
关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 —— IIC总线 ,下面回顾下 IIC 基础概念 一、IIC 基础概念 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。IIC 阅读全文
摘要:
无符号数都有“unsigned”标志,如果没有“unsigned”标志,则程序默认该数为有符号数“signed”。无符号数可正可负 ,有符号数一定为正。由于有符号与无符号数所占用的字节数相同,因此无符号数所允许的最大值比有符号数的大一倍。如 ,无符号短整型数的数值范围是0到65535,而有符号短整型 阅读全文
摘要:
char*strcpy(char *dest, const char *src); 其对字符串进行操作,完成从源字符串到目的字符串的拷贝,当源字符串的大小大于目的字符串的最大存储空间后,执行该操作会出现段错误。 int sprintf(char*str, const char *format, .. 阅读全文
摘要:
总: 01:目 > 源 多放越界 ⭐ 02:目 < 源 少放遗漏 ⭐ 问题一: 问题二: 分析:大端序存储顺序:高地址存储低位字节,低地址存储高位字节;小端序存储顺序:低地址存储低位字节,高地址存储高位字节。函数对4字节序的修改只会修改2个字节,在大端序cpu中修改高位字节导致错误。 强制转换灵活性 阅读全文
摘要:
什么是大端法和小端法? 在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中的最小地址。 例如,假设一个类型为int的变量x的地址为0x100,即&x的值为0x100。那么x的4个字节将被存储在存储器的0x100,0x101,0x102和0x103的位置。 字节序即为多字 阅读全文
摘要:
原文:https://www.cnblogs.com/AlexMiller/p/5509609.html 字节对齐的原因 为了提高 CPU 的存储速度,编译器会对 struct 和 union的存储进行优化,即进行字节对齐。 对齐方式 对于 struct 或 union 中的 struct 或者 u 阅读全文
摘要:
突然间就想到了long和int到底什么区别(发现有很多问题都是突然间想到的),然后百度、google各种查找,各种书籍:《C++ Primer》、《C程序设计语言》查看,终于明白了一些。下面的话选自《C程序设计语言》: short与long两个限定符的引入可以为我们提供满足实际需要的不同长度的整形数 阅读全文
摘要:
Linux内核的映射机制设计成三层,在页面目录和页面表中间增设了一层“中间目录”。在代码中,页面目录称为PGD,中间目录称为PMD,而页面表称为PT。PT中的表项称为PTE,PTE是“Page Table Entry”的缩写。PGD、PMD和PT均为数组。在逻辑上也把线性地址从高位到低位划分成4个位 阅读全文
摘要:
用户程序需要系统提供服务的时候,会通过系统调用产生一个int 0x80的软中断,就会进入到系统调用的入口函数,入口函数存放在以下文件当中: 以下是系统调用的入口: ENTRY(system_call) RING0_INT_FRAME # cant unwind into user space any 阅读全文
摘要:
“一切皆是文件”是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。另外所谓的块设备:是指支持随机访问的存储设备;与此相对应的是字符设备,它只支持顺序访问。另外Li 阅读全文
摘要:
add platform_device之后,需要注意的一个地方是这里,add是通过系统初始化里边调用platform_add_devices把所有放置在板级platform_device数组中的所有platform_device逐次调用platform_device_register添加到系统中去, 阅读全文
摘要:
各类文件的区别与作用: 1、对于.so文件 .so文件是用户层的动态链接库,用于用户层的动态链接使用,内核态的代码同样不能直接访问。 2、对于.ko文件 obj-m = *.oobj-y = *.o上面两者的区别在于,前者才会生成ko文件,后者只是代码编译进内核,并不生成ko文件。 .ko文件是内核 阅读全文
摘要:
一、中断处理为什么要下半部?Linux在中断处理中间中断处理分了上半部和下半部,目的就是提高系统的响应能力和并发能力。通俗一点来讲:当一个中断产生,调用该中断对应的处理程序(上半部)然后告诉系统,对应的后半部可以执行了。然后中断处理程序就返回,下半部会在合适的时机有系统调用。这样一来就大大的减少了中 阅读全文
摘要:
这是题目给出的答案:第一题,~A =0xfffffff5,int值 为-11,但输出的是uint。所以输出4294967285 第二题,c=0x10,输出的是int,最高位为1,是负数,所以它的值就是0x00的补码就是128,所以输出-128。这两道题都是在考察二进制向int或uint转换时的最高位 阅读全文