CC国嵌学习笔记.doc

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CC国嵌学习笔记

1、 ?在学习内核驱动奥秘多》嵌入式内核制作时,make uImage ARCH=arm CROSS_COMPILE=arm-linux- 后,linux目录下买有出现uImage.bin mini2440没有加根文件系统时启动内核出现Data Abort(动时出现的) mini2440加了根文件系统时启动内核出现Data Abort Ls 之后并没有出现制作的根文件系统 若动后正常,(加了一个头的原因?) 字符驱动设计时:mknod只能用 mknod /dev/memdev0 . .. .. 若改为mknod /dev/memdev1. .. ..或其它则不能出现预期的效果 ----》和相应的应用程序向对应 fd = open(/dev/memdev0,O_RDWR); 进入linux内核之后修改开发板ip需修改两个文件中的相关ip,gateway,dns为指定: /etc/init.d/eth0-ifconfig /etc/eth0-setting 6、 7、APCS,ARM 过程调用标准(ARM Procedure Call Standard),提供了紧凑的编写例程的一种机制,定义的例程可以与其他例程交织在一起。最显著的一点是对这些例程来自哪里没有明确的限制。它们可以编译自 C、 Pascal、也可以是用汇编语言写成的。 APCS 对我们通常称为 R0 到 R14 的寄存器起了不同的名字。使用汇编器预处理器的功能,你可以定义 R0 等名字,但在你修改其他人写的代码的时候,最好还是学习使用 APCS 名字。 寄存器名字 Reg # APCS 意义 R0 a1 工作寄存器 R1 a2 R2 a3 R3 a4 R4 v1 必须保护 R5 v2 R6 v3 R7 v4 R8 v5 R9 v6 R10 sl 栈限制 R11 fp 桢指针 R12 ip R13 sp 栈指针 R14 lr 连接寄存器 R15 pc 程序计数器 译注:ip 是指令指针的简写。 ftp环境的搭建 安装、配置、重启 /article/adc815133476bdf723bf7393.html #############################C语言学习笔记########################## 基本数据类型分析 什么是数据类型? ? 数据类型可以理解为固定内存大小的别名 ? 数据类型是创建变量的模子 变量的本质 ? 变量是一段实际连续存储空间的别名 ? 程序中通过变量来申请并命名存储空间 ? 通过变量的名字可以使用存储空间 auto ,register ,static 分析 ?static修饰的局部变量存储在程序静态区 ?static的另一个意义是文件作用域标示符 --修饰函数作用域只是声明的文件中,修饰的全局变量作用域只是声明的文件中 ?register变量的必须是CPU寄存器可以接受的值 ?不能用运算符获取register变量的地址 ?auto变量存储在程序的栈中,默认属性 ? static变量存储在程序静态区中(静态全局变量) ? register变量请求存储于CPU寄存器中 if ,switch ,do , while , for分析 if语句中零值比较的注意点 ? bool型变量应该直接出现于条件中,不要进行比较 ? 普通变量和0值比较时,0值应该出现在比较符号左边 ? float型变量不能直接进行0值比较,需要定义精度 #define EPSINDN 0,float f=0.0 if((-EPSINDN =f)(f=EPSINDN )) break和continue的区别 ? break表示终止循环的执行 ? continue表示终止本次循环体,进入下次循环执行 goto ,void ,extern , sizeof分析 goto 破坏了过程式程序设计的规则 void指针的意义 ? C语言规定只有相同类型的指针才可以相互赋值 ? void*指针作为左值用于“接收”任意类型的指针 ? void*指针作为右值赋值给其它指针时需要强制类型转换 ?Void* 指针实现memset函数 void memset(void*p ,char v ,int size) 接收任意类型的数组值 ? extern用于声明外部定义的变量和函数 ? extern用于“告诉”编译器用C方式编译 extern “C”{ } 为sizeof正名 ? sizeof是编译器的内置指示符,不是函数 ? sizeof用于“计算”相应实体所占的内存大小(字节) ? sizeof的值在编译期就已经确定 const 和volatile

您可能关注的文档

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档