-
字符串操作
字符串操作字符串C语言之中没有string,以NUL字节(全部为0 、\0)结尾使用gets获取到的字符串丢弃换行符加上一个NUL scanf函数 ===> 实现按照指定的格式接收输入,返回值是成功传入的参数个数,形式和printf相似,但是接收使用指针,在读取数据时,只读取使用到的数据,剩余的数据保留 getchar()===>获取一个字符,如果不再存在任何字符返回EOF 注:EOF为长度大于一个字节的数字,应该使用整形接收防止误判 gets()===>获取一个...…
-
C语言环境
C语言环境主要分为编译环境和执行环境,不一定要在一台机器上,比如交叉编译器独立环境:没有操作系统的环境,通常出现在嵌入式翻译预处理=> 解析=>优化器=>编译=>链接(详细见笔记本)执行详细见笔记本…
-
C程序基础
C程序基础EOF是文件的结束符, 不属于char的范围内字符串要求以\n\0结束…
-
进程线程协程
进程线程协程在多进程时候不能使用全局变量,但是使用了锁、关中断等机制实现互斥反应在Linux之中可以使用man命令查看是不是安全的函数man 3 mallocmalloc调用了全局链表,但是通过临区实现了互斥访问,所以可以大胆调用进程Linux下的每一个程序都会被封装成一个进程,用task_struct管理,在Linux下每一个进程的内存都是独立的,所以无论一个函数是不是可重入都可以调用。进程之间通讯使用第三方工具 在每一个进程的4GB虚拟空间之中,3GB是各个进程独享,1GB内核是共享...…
-
系统调用
系统调用驱动和上层代码由不同的团队开发,不能保证安全性优点: 简化程序开发,提供统一的接口 保证安全操作系统的权限管理 指令在运行时运行权限、内存访问权限、硬件资源访问权限,Linux在内核态时候可以随意访问资源,在用户态时候受到限制CPU的特权等级不同的CPU有不同的运行等级如x86有四个等级,ring0-ring3,ring3为应用程序使用的等级,访问系统硬件受到限制,ring0为特权等级,操作系统的等级ARM平台:用户等级USR 特权等级SYS、FIQ、IRQ、SVC、ABT、...…
-
文件系统
文件系统从底层物理存储是设备上的二进制到不同目录下的具体文件名是一个存储管理程序,型用户提供一组文件目录以及操作的API格式化:文件系统的加载,建立文件名、文件目录到实际储存地址的映射文件系统把内存分为两部分,纯数据区、元数据区,纯数据区存储真正的文件,元数据区存储文件的相关属性:磁盘中的位置、文件长度、时间戳、读写权限、所属组、链接数据。文件系统的挂载挂载(mount): 把文件挂载到某一个目录上实质是改变目录到文件的映射关系,建立关联mount -t vfat /mnt /dev/mm...…
-
嵌入式启动
嵌入式启动存储器相关知识 (xusenfeng.github.io)启动方式首先执行CPU芯片内部固化的一小片代码ROMCODE,初始化存储器的接口,建立存储的映射,根据CPU的引脚确定启动方式如果初始的地址是在SARM和NOR Flash可以随机读写,直接运行代码,其他的需要先复制到内存运行,因为这个时候DDR SDARM还没有初始化,所以会先复制到芯片内部集成的SRAM中进行,完成初始化之后进入DDR SDRAM中内存与外部设备计算机的存储设备按照读取速度: 寄存器 缓存 内存 ...…
-
寄存器操作
寄存器操作位运算 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int i = 0xff; 6 printf("%x\n", 0xff&0x0); 7 printf("%x\n", 0xf0&0x0f); 8 printf("%x\n...…