程序员编程的7+1条小贴士

1. 编码之前想一想

用 10 分钟,20 分钟甚至 30 分钟的时间来想想你需要什么,想想什么样的设计模式(如果有的话)适合你将要编码的东西。真的要好好想想,你会很庆幸“浪费”了那几分钟,当你不得不更改或添加东西到代码中,而这只花费了你 30 分钟的时间而不是 5 小时。

2. 注释你的代码

说真的,没有什么比两个月后检查自己的代码,却不记得它用来干什么更糟糕的了。注释所有重要[……]

继续阅读…

继续阅读

[转]浅析如何学习基于ARM平台的嵌入式系统

在这里我们将讨论的是如何学习基于ARM平台嵌入式系统,希望对大家有所帮助。

本文将从技术和就业经验等角度为即将进入嵌入式开发的程序员们,详细讲述了嵌入的概念,嵌入式开发之间的异同以及应该如何做出选择,希望对大家有所帮助。

一、嵌入式系统的概念

主要从三个方面上来理解。

1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU[……]

继续阅读…

继续阅读

Linux进程内存空间分段

Linux的内存空间简单可以分为5个部分:

Text(代码区):存放可执行的指令操作,其只读不能写
Bss(静态区or全局区):存放未初始化的全局变量和静态变量
Data(数据区):存放初始化的全局变量和静态变量
Stack:存放临时变量,函数参数等
Heap:存放new/malloc等动态申请的变量,用户必须手动进行delete/free操作。

其中Stack和He[……]

继续阅读…

继续阅读

linux设备驱动总结(七): file_operations以及file,inode,cdev之间的关系

本节主要内容:
一、文件操作结构体file_operations
二、file,inode,cdev之间的关系
三、”以小博大” — container_of

一、文件操作结构体file_operations

继续上次没讲完的问题,文件操作结构体到底是什么东西,为什么我注册了设备之后什么现象都没有?可以验证文件操作结构体的内容。
file_operations是一个函数指针的[……]

继续阅读…

继续阅读

Linux设备驱动总结(六): 字符设备驱动–LED驱动(原始版本)

本节主要内容:
一.驱动的分类
二.设备号注册
三.设备文件
四.硬件操作和内存映射
五.用户和内核数据交互
六.出错处理

一.驱动的分类:

内核驱动大致分为三类:
1)字符设备:在本系列总结中主要是字符设备为开发方向。
2)块设备 :与硬盘相关的设备,主要是移植。
3)网络设备:与网络相关的设备,主要是移植。

上面的三种设备,我也只学习过字符设备,所以对后面的[……]

继续阅读…

继续阅读