自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (8)
  • 收藏
  • 关注

转载 linux Platform设备驱动

PlatForm设备驱动:一、platform总线、设备与驱动1.一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设等确不依附于此类总线。基于这一背景,Linux发明了一种虚拟的总线,称为platform总线,相应的设

2014-04-28 21:56:54 549

转载 设备模型之sysfs,bus,device,driver源代码分析

linux驱动编写之十三(设备模型之sysfs,bus,device,driver源代码分析) 分类:linux心得|标签:struct sysfs name device mode http://liurugongzi.blog.sohu.com/107292045.htmlsysfs文件系统存在于内存中,是一个虚拟文件系统,其提供了kobject对象层次的视图,可以

2014-04-27 11:07:01 592

转载 module_init解析

像你写C程序需要包含C库的头文件那样,Linux内核编程也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:   #include #include #include 其中,init.h 定义了驱动的初始化和退出相关的函数,kernel.h 定义了经常用到的函数原型及宏定义,module.h 定义了内核模块相关的函数、变量及宏。     

2014-04-27 10:33:34 613

转载 如何修改bootargs参数使u-boot从网络引导内核

如何修改bootargs参数使u-boot从网络引导内核2013年10月28日 ⁄ 综合⁄ 共 1821字 ⁄ 字号小 中 大 ⁄ 评论关闭如何修改bootargs参数使u-boot从网络引导内核?开发板上电运行u-boot后,不按下空格键,将会自动从flash引导内核。但现在我想从通过通过网络自动从TFTP SERVER下载并启动内核,而不是从flash启动内核。在网上搜

2014-04-26 08:30:01 2100

转载 linux设备驱动归纳总结(五):4.写个简单的LED驱动

linux设备驱动归纳总结(五):4.写个简单的LED驱动http://blog.chinaunix.net/uid-25014876-id-84693.htmlxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx在上面的章节的知识,已经能够实现个简单的LED驱动

2014-04-22 00:06:25 367

转载 linux设备驱动归纳总结(五):4.写个简单的LED驱动

linux设备驱动归纳总结(五):4.写个简单的LED驱动http://blog.chinaunix.net/uid-25014876-id-84693.htmlxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx在上面的章节的知识,已经能够实现个简单的LED驱动

2014-04-21 23:51:50 342

转载 Wifi移植浅析

Wifi移植浅析作者:熊老师,华清远见嵌入式学院讲师。点击打开链接大家都知道在做wifi的移植过程中主要是涉及到移植三个东西,一个openssl的移植,一个wpa_suplicant的移植。还有一个就是添加咱们的wifi驱动了,咱们这里使用的rt8192cu.ko。这三个家伙搞定了,咱们的wifi就可以使用了哦。一 、openssl的移植我们先来搞清楚openssl是干什么

2014-04-21 17:28:30 1015

转载 linux内核对S3C2410睡眠模式的支持

linux内核对S3C2410睡眠模式的支持2012-03-19 11:50:42http://blog.chinaunix.net/uid-25932176-id-3139025.html分类: 嵌入式一、S3C2410支持4种供电模式(1)NORMAL MODE耗电最大、可以通过关闭具体控制器的时钟来节电(2)SLOW MODE在此模式下可以没有

2014-04-21 17:23:14 535

转载 s3c2440 省电模式开发详解

s3c2440 省电模式开发详解2012-03-19 11:37:59分类: 嵌入式1、源码包Kernel   :linux-2.6.18.2Uboot    :u-boot-1.1.4Gcc      :arm-linux-gcc-3.4.1.tar.bz2  开发流程及详细步骤1、休眠部分1.       电源管理守护进程省略 

2014-04-21 17:22:14 871

转载 gdb+gdbserver方式进行ARM程序调试

gdb+gdbserver方式进行ARM程序调试(收藏)gdb+gdbse总体介绍远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接。使用GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。就目前而言,嵌入式Linux

2014-04-21 08:57:37 566

转载 从外网访问内网本机的网站实现方法分享

从外网访问内网本机的网站实现方法分享发布:mdxy-dxy 字体:[增加 减小] 类型:转载 鉴于网上类似的详细教程真的很少,也许是问题太简单了吧。但仍然有不少网友经常会问道。所以今天我就给大家做个详细的图文介绍。希望大家能对大家有所帮助这是一个比较古老的话题了。一般懂得搭建网站的朋友,应该都会有分享自己小站的冲动。一来可以展示自己的作品,二来也可以方便别人看看网站,提提意

2014-04-19 23:49:02 896

转载 常量指针和指针常量

阅读会员限时特惠 7大会员特权立即尝鲜      7     ptr1 =str2; //错误 因为这是一个常量指针,改变指向的地址了  8   9     printf("%s n",*ptr1); 10     } 11  12  13 // 编译错误    error C3892: 'ptr1' : you 

2014-04-18 11:41:18 489

转载 mjpg-streamer移植

OK6410移植mjpg-streamer分类: 开发小技巧 2014-02-24 20:05 70人阅读 评论(2)收藏 举报本文参考了小不点儿的毕业论文和大牛的文章,在此表示感谢!http://bbs.ednchina.com/BLOG_ARTICLE_3008135.HTM一、jpeg库的移植1. 下载源码MJPG-streamer程序调用

2014-04-18 11:06:07 871

转载 远程摄像头软件mjpg-streamer使用指南

远程摄像头软件mjpg-streamer使用指南转 自:http://bbs.hdchina.org/viewthread.php?tid=94749mjpg-streamer 可以通过文件或者是HTTP方式访问linux UVC兼容摄像头。可以在公司,通过访问家里安装的摄像头查看家里的情况,对于有小孩的家长很有帮助。如果刚好手头上一个能安装openwrt带USB接口的路由

2014-04-17 20:38:33 804

转载 About MJPEG-streamer

Main PageContents[hide]1About the project2Screenshots3About the name4What it does5Plugins5.1Input-Plugins5.1.1input_testpicture.so5.1.2input_uvc.so5.1.3inpu

2014-04-17 20:21:14 1119

转载 /dev/fb0的入门练习

/dev/fb0的入门练习【转】(2011-12-08 23:11:28)转载▼标签:杂谈分类:嵌入式linux 1/dev/fb0是linux系统下帧缓冲设备的设备文件。文件/dev/fb0就是控制屏幕上的每一点的顏色的文件。我們可以写程序來改變這個文件的內容,就可以方便的在屏幕上画图了:-)这个是LINUX上不

2014-04-17 01:22:53 3792

转载 我使用过的Linux命令之hwclock - 查询和设置硬件时钟

我使用过的Linux命令之hwclock - 查询和设置硬件时钟博客分类:Linux命令Linux网络协议DOSUPBlog 我使用过的Linux命令之hwclock - 查询和设置硬件时钟本文链接:http://codingstandards.iteye.com/blog/804830   (转载请注明出处) 用途说明hwclock命令,与clock命

2014-04-17 01:13:17 526

转载 qrencode解析二维条形码

软件名称: qrencode授权方式:GPL操作系统:Linux,FreeBSD软件大小:357K最新更新:2012-04-13 22:15:26软件简介:libqrencode (QRencode) 是一个用C语言编写的用来解析二维条形码(QR Code)的程序库,libqrencode通过手机的CCD摄像头

2014-04-17 01:11:34 1779

转载 实现输出h264直播流的rtmp服务器 flash直播服务器

实现输出h264直播流的rtmp服务器 flash直播服务器实现输出h264直播流的rtmp服务器  RTMP(Real Time Messaging Protocol)是常见的流媒体协议,用来传输音视频数据,结合flash,广泛用于直播、点播、聊天等应用,以及pc、移动、嵌入式等平台,是做流媒体开发经常会接触到的协议。我之前曾经写过一篇文章“RTMP协议发送H.264编码及AAC

2014-04-17 00:41:27 821

转载 busybox telnetd的移植与配置

Telnet系列1:busybox telnetd的移植与配置      Telnet协议是登陆远程网络主机最简单的方法之一,只是安全性非常低。对target board来说,必须执行telnet监控程序,这样才可以远程登陆到target board。同时,如果想从开发板通过telnet远程登陆其他host,就需要具备telent cli

2014-04-16 17:33:25 1851

转载 NTP协议以及ntpclinet使用 From Evernote: NTP协议以及ntpclinet使用 NTP全称是Network Time Protocol,是用来让计算机之间实现时间同步的协议

NTP全称是Network Time Protocol,是用来让计算机之间实现时间同步的协议。发布这种校对时间的服务器,就是NTP Server;而在Internet中的任何主机上都可以使用NTP客户端程序从NTP Server上读取时间,以实现网络时间同步的功能。国内的NTP Server基本都属于科研教育机构所有,普通社会组织发布的NTP Server并不多,以下是搜集的一些国内可

2014-04-16 17:31:58 1084

转载 stty 命令

stty ispeed 115200 ospeed 115200 -F /dev/ttyS0stty 命令用途设置、复位和报告工作站操作参数。语法stty [ -a ] [ -g ][ Options ]描述stty 命令对当前为标准输入的设备设置某些 I/O 选项。该命令将输出写到当前为标准输出的设备中。这个操作系统的版本使

2014-04-16 17:22:28 3976

转载 开启telnet服务

telnetd -l /bin/sh      这里顺便介绍一下telnetd的参数:Usage: telnetd [OPTIONS]Handle incoming telnet connections        -l LOGIN        Exec LOGIN on connect        -f ISSUE_FILE   Display ISSUE_FILE

2014-04-16 15:50:48 6375

转载 Jlink + Vmware虚拟机调试uboot

Jlink + Vmware虚拟机调试uboot2012-07-06 11:06:17分类: 嵌入式以前的笔记丢了,重写一下,细节部分就不说了,还是比较简单的.Jlink 版本V4.34d, 网上有人说V4.40以上不识别山寨JLINK V8            注意Localhost only 不要选上,不让通

2014-04-14 01:00:41 2020

转载 JLink + Vmware调试linux内核

JLink + Vmware调试linux内核2012-06-28 15:10:49分类: 嵌入式Jlink 版本:  V4.34d交叉编译: arm-none-linux-gnueabi-gcc Boot Loader 调用 Linux 内核的方法是直接跳转到内核的第一条指令处,也即直接跳转到 MEM_START+0x8000 地址处。在跳转时,下列条件要满足:

2014-04-14 00:58:35 1496

转载 搭建交叉调试环境arm-linux-gdb与gdbserver

搭建交叉调试环境arm-linux-gdb与gdbserver操作系统:Ubuntu9.04开发板:博创2410s交叉编译工具:arm-linux-gcc-4.1.1gdb+gdbserver 是调试目标板的常用方法.网络环境如下:HOST 192.168.1.123  Target:192.168.1.21NFS共享目录: mount -t nfs -o intr,n

2014-04-13 23:37:58 1943

转载 解开 JFFS2 文件系统镜像

解开 JFFS2 文件系统镜像解开 JFFS2 文件系统镜像(摘自 (博客大巴):http://telltruth.blogbus.com/logs/25057536.html,在此对原作者表示感谢)在 mtd-utils 里边有 mkfs.jffs2 和 jffs2dump. 那个 mkfs.jffs2 用来把一堆输入文件打成一个

2014-04-11 17:26:06 828

转载 Linux定时器的使用

使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号,还有那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用

2014-04-02 15:11:48 377

转载 struct inode 和 struct file

struct inode 和 struct file1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode {struct hlist_node    i_hash;struct list_hea

2014-04-01 11:24:05 500

转载 设备号的静态申请与动态分配

设备号的静态申请与动态分配  字符类型驱动 设备号是在驱动module中分配并注册的,也就是说,驱动module拥有这个设备号(我的理解),而/dev目录下的设备文件是根据这个设备号创建的,因此,当访问/dev目录下的设备文件时,驱动module就知道,自己该出场服务了(当然是由内核通知)。     在Linux内核看来,主设备号标识设备对应的驱动程序,告诉Linux内

2014-04-01 11:19:31 1147 1

1_BLDC电机控制算法.pdf

1.BLDC 永磁无刷电机电机控制算法 2.AC 电机控制算法 3.步进电机控制算法 4.通用 DC 电机控制算法

2021-09-08

猪哥的嵌入式Linux公房菜

一、学习指引 【PAGE:6-34】 1.嵌入式设计应具备的基本技能 2.嵌入式 Linux 学前指导 3.嵌入式 linux 入门学习规划 4.嵌入式 linux 入门学习内容指南 5.O'Reilly 原版 Linux 图书学习线路图 6.嵌入式系统知识体系、学习误区及建议 7.嵌入式系统 Linux 内核开发学习指导框图 8.嵌入式系统开发学习如何起步、如何深入? 9.Linux 系统初学者的常见问题解决集结大全 二、基本概念 【PAGE:34-79】 1.嵌入式 Linux 操作系统名词解释及资源大全 2.linux 下的各个目录的含义 3.GCC 编译器介绍 4.GCC 编译器发展历程 5.几种 Linux 嵌入式开发环境简介 6.三种嵌入式操作系统的分析与比较 7.交叉编译的基本概念 8.两本嵌入式 Linux 开发经典教程比较 9.Windows 与 Linux 系统下的库介绍 10.比较五种开源协议 11.BSS 段、数据段、代码段、堆与栈 12.moblin SDK 简介 13.Windows 和 Linux 动态库差异分析 14.主流浏览器内核概述 15.Linux 音频系统简析 16.linux 世界里的时间概念三、网络资源 【PAGE:80-94】 1.需静心细看的书 2.主要嵌入式 Linux 操作系统网站 3.嵌入式 Linux 的主流版本及开发商 4.嵌入式 Linux 网络资源列表 5.三个最实用的 linux 命令行方面的网站 四、基础知识 【PAGE:95-169】 1.Linux 下 C 语言编程基础知识 2.GCC 基础知识 3.常见的 Linux 系统调用 4.主流嵌入式 Linux 动态扩展技术比较分析 5.Linux 动态库剖析 6.Linux 下 patch 的制作和应用 7.初步探讨 ARM 调试技术 8.linux 下 shell 的工作原理 9.Linux 文件压缩剖析 10.嵌入式软件代码压缩技术剖析 11.ARM 的堆栈初始化详解 12.linux 库文件编写入门 13.make shell 函数简介五、工具配置 【PAGE:170-273】 1.Vi 编辑器的基本使用方法 2.ARM Linux 开机后自动运行特定程序的方法 3.ARM 下 GCC 交叉编译器的制作 4.Linux 2.6.19.x 内核编译配置选项简介 5.ARM 板上构造 gdb +gdbserver 调试环境 6.用 NFS 服务开发 ARM Linux 程序的方法介绍 7.与 sourceinsight 媲美的代码阅读工具 8.DIY 打造嵌入式 Linux 软硬件开发环境 9.GDB/ARMulator 介绍 10.gdb+gdbserver 的方式进行 ARM 程序调试 11.GNU 工具开发基于 ARM 嵌入式系统的方法 12.交叉平台开源编译系统:cmake 入门 13.autotools 生成 makefile 入门 14.SVN,HG,GIT 命令对照 15.利用 vmmare tools 来实现共享的具体操作 16.献给初学者的10个 Git 技巧 六、shell 命令 【PAGE:274-345】 1.嵌入式 Linux 开发常用的实用命令 2.7个极具杀伤性的 Linux 命令 3.U-Boot 提供的基本命令 4.nm 命令查看对象,可执行及库文件 5.shell 命令:wget 命令的使用技巧 6.用脚本实时显示 Linux 网络流量 7.Linux 必学的60个命令(1)-安装与登陆 8.Linux 必学的60个命令(2)-文件处理9.Linux 必学的60个命令(3)-系统管理 10.Linux 必学的60个命令(4)-网络操作 11.Linux 必学的60个命令(5)-网络安全 12.Linux 必学的60个命令(6)-其他 七、Linux 系统基础知识专题 【PAGE:346-459】 1. Linux 系统基础知识(一)硬盘 2. Linux 系统基础知识(二)安装 3. Linux 系统基础知识(三)基本使用命令 4. Linux 系统基础知识(四)X 的配置 5. Linux 系统基础知识(五)Linux 命令和技巧 6. Linux 系统基础知识(六)Linux 安装的几点经验 7. Linux 系统基础知识(七)linux 文件系统 8. Linux 系统基础知识(八)Linux 系统安装前的准备工作 9. Linux 系统基础知识(九)Linux 与其他操作系统的区别 10. Linux 系统基础知识(十)unix 系统发展史 11. Linux 系统基础知识(十一)操作系统简述 12. Linux 系统基础知识(十二)常见 linux 介绍 13. Linux 系统基础知识(十三)关于开放源代码的定义 14. Linux 系统基础知识(十四)什么是 Linux 15. Linux 系统基础知识(十五)GNU 通用公共许可证 16. Linux 系统基础知识(十六)GRUB 三步通 17. Linux 系统基础知识(十七)Linux init 详解 18. Linux 系统基础知识(十八)linux 常用命令索引 19. Linux 系统基础知识(十九)Linux 启动过程综述 20. Linux 系统基础知识(二十)LINUX 文件格式简介 21. Linux 系统基础知识(二十一)Linux 下软件安装方法 22. Linux 系统基础知识(二十二)Linux 与其他操作系统的区别 23. Linux 系统基础知识(二十三)linux 完全汉化汉化 24. Linux 系统基础知识(二十四)linux 完全安装手册25. Linux 系统基础知识(二十五)VI 的使用 26. Linux 系统基础知识(二十六)编程语言 27. Linux 系统基础知识(二十七)文件与目录操作 28. Linux 系统基础知识(二十八)Linux 备份与压缩命令

2017-10-14

高质量C++/C编程指南

高质量 C++/C 编程指南 作者-林锐 博士 C++/C编程进阶教材

2017-10-14

人月神话 (32周年中文纪念版)弗雷德里克·布鲁克斯著

人月神话 (32周年中文纪念版)弗雷德里克·布鲁克斯著

2017-10-14

产品设计与开发(第三版)

《产品设计与开发(第3版)(翻译版)》原版是由宾夕法尼亚大学沃顿商学院副教授Karl T.Ulrich与麻省理工学院斯隆管理学院教授Steven D.Eppinger合作编写,由湖南大学詹涵菁翻译为中文版。

2017-10-14

PID 调节控制做电机速度控制

将偏差的比例(Proportion)、积分(Integral)和微分(Differential)通过线性组合构成控制量, 用这一控制量对被控对象进行控制,这样的控制器称 PID 控制器。

2017-10-14

Google+C+++编程规范

Google+C+++编程规范 一、头文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. #define 的保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. 头文件依赖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. 内联函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4. -inl.h 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Function Parameter Ordering 5. 函数参数顺序(Function Ordering) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6. 包含文件的名称及次序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 二、作用域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Namespaces 1. 命名空间(Namespaces Namespaces) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Nested Class 2. 嵌套类(Nested Class) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Nonmember Static Member 3. 非成员函数(Nonmember Nonmember)、静态成员函数(Static Member)和全局函 Global Functions 数(Global Functions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Local Variables 4. 局部变量(Local Variables) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Global Variables 5. 全局变量(Global Variables) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 三、类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Constructor 1. 构造函数(Constructor Constructor)的职责 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Default Constructors 2. 默认构造函数(Default Constructors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Explicit Constructors 3. 明确的构造函数(Explicit Constructors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Copy Constructors 4. 拷贝构造函数(Copy Constructors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Structs vs. Classes 5. 结构体和类(Structs Classes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Inheritance 6. 继承(Inheritance Inheritance) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Multiple Inheritance 7. 多重继承(Multiple Inheritance) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Interface 8. 接口(Interface Interface) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Operator Overloading 9. 操作符重载(Operator Overloading) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Access Control 10. 存取控制(Access Control) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Declaration Order 11. 声明次序(Declaration Order) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Write Short Functions 12. 编写短小函数(Write Functions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Google 特有的风情 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 四、Google Smart Pointers 1. 智能指针(Smart Pointers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 五、其他 C++ C++特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Reference Arguments 1. 引用参数(Reference Arguments) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Function Overloading 2. 函数重载(Function Overloading) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Default Arguments 3. 缺省参数(Default Arguments) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Variable-Length Arrays and alloca() 4. 变长数组和 alloca alloca(Variable-Length alloca()) . . . . . . . . . . . . . . . . 20 Friends 5. 友元(Friends Friends) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Exceptions 6. 异常(Exceptions Exceptions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Run-Time Type Information, RTTI 7. 运行时类型识别(Run-Time RTTI) . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Casting 8. 类型转换(Casting Casting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Streams 9. 流(Streams Streams) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Preincrement and Predecrement 10. 前置自增和自减(Preincrement Predecrement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Use of const 11. const 的使用(Use const) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Integer Types 12. 整型(Integer Types) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 64-bit Portability 13. 64 位下的可移植性(64-bit Portability) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Preprocessor Macros 14. 预处理宏(Preprocessor Macros) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 0 and NULL 15. 0 和 NULL NULL(0 NULL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 sizeof 16. sizeof sizeof(sizeof sizeof) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Boost 17. Boost 库(Boost Boost) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 六、命名约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 General Naming Rules 1. 通用命名规则(General Rules) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 File Names 2. 文件命名(File Names) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Type Names 3. 类型命名(Type Names) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Variable Names 4. 变量命名(Variable Names) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Constant Names 5. 常量命名(Constant Names) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Function Names 6. 函数命名(Function Names) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Namespace Names 7. 命名空间(Namespace Names) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Enumerator Names 8. 枚举命名(Enumerator Names) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Macro Names 9. 宏命名(Macro Names) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Exceptions to Naming Rules 10. 命名规则例外(Exceptions Rules) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 七、注释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Comment Style 1. 注释风格(Comment Style) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 File Comments 2. 文件注释(File Comments) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Class Comments 3. 类注释(Class Comments) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Function Comments 4. 函数注释(Function Comments) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Variable Comments 5. 变量注释(Variable Comments) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Implementation Comments 6. 实现注释(Implementation Comments) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Punctuation, Spelling and Grammar 7. 标点、拼写和语法(Punctuation, Grammar) . . . . . . . . . . . . . . . . . . . 38 TODO Comments 8. TODO 注释(TODO Comments) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 八、格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Line Length 1. 行长度(Line Length) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Non-ASCII Characters 2. 非 ASCII 字符(Non-ASCII Characters) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Spaces vs. Tabs 3. 空格还是制表位(Spaces Tabs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Function Declarations and Definitions 4. 函数声明与定义(Function Definitions) . . . . . . . . . . . . . . . . . . . 40 Function Calls 5. 函数调用(Function Calls) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Conditionals 6. 条件语句(Conditionals Conditionals) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Loops and Switch Statements 7. 循环和开关选择语句(Loops Statements) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Pointers and Reference Expressions 8. 指针和引用表达式(Pointers Expressions) . . . . . . . . . . . . . . . . . . . 45 Boolean Expressions 9. 布尔表达式(Boolean Expressions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Return Values 10. 函数返回值(Return Values) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Variable and Array Initialization 11. 变量及数组初始化(Variable Initialization) . . . . . . . . . . . . . . . . . . . . . . . . 46 Preprocessor Directives 12. 预处理指令(Preprocessor Directives) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Class Format 13. 类格式(Class Format) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Initializer Lists 14. 初始化列表(Initializer Lists) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Namespace Formatting 15. 命名空间格式化(Namespace Formatting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Horizontal Whitespace 16. 水平留白(Horizontal Whitespace) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Vertical Whitespace 17. 垂直留白(Vertical Whitespace) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 九、规则之例外 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Existing Non-conformant Code 1. 现有不统一代码(Existing Code) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Windows Code 2. Windows 代码(Windows Code) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 十、团队合作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2017-10-14

Software Engineering for Embedded Systems

Software Engineering for Embedded Systems Methods, Practical Techniques, and Applications,一本非常好的书

2017-06-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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