reille

 


最近在调试eCos STM32 SD卡驱动。目前情况是,驱动可以正常读取SD卡中block数据,但应用程序中mount时却提示失败。发现是对SD卡block0中数据处理有些问题,而且驱动中还涉及到CHS格式与LBA格式的转换,弄得我是一头雾水。

于是,老老实实地静下心来研究SD卡中的数据结构、CHS(cylinder、head、sector,即柱面、磁头、扇区)和LDA的概念及其关系、FAT文件系统等知识。下面的内容是转载的(同时加以整理),写得超详细,剖析全面,图文并茂,尤其是其中的数据格式分析,令人印象深刻,不得不佩服作者的写作水平。

阅读全文 »

 


随着万圣节越来越流行,我感觉有必要跟大家讨论一下一个在软件开发中非常普遍的问题:僵尸代码。几乎所有我接触过的代码库里都四散着很多小段的,甚至大片大片的被注释掉的代码。这就是僵尸代码。

// 目前禁用这项功能。Jimmy在写这段代码时肯定是喝醉了。

// 你可能以为这里发生了恐怖的代码凶手安…不,不,我只是把它们注释掉了…

为什么称它们为僵尸代码?你知道,僵尸不并不是真的死的。就像恐怕电影里告诉我们的,尽管僵尸看起来是死人,但它们仍有能力四处出没袭击我们。相同的道理,僵尸代码也是处于不生不死之间…

阅读全文 »

 


什么?eCos也要打补丁(put a patch)?

看到文章标题时,我估计有人很惊讶,并且会发出上面类似的问题。也许你听说过windows打补丁而且关于这个还是出了名 的,听说过linux打补丁而且有专门的diff和patch命令。确定的是,在eCos中,补丁同样存在。

本文就来说说eCos中补丁的那些事以及怎样给eCos打补丁。 阅读全文 »

 


谈及linux补丁(patch)及其patch操作,自然而然地觉其复杂,故一直存敬畏之心,所以也就一直远离它。但像做嵌入式linux开发,有时候patch是无法绕过的。

对于补丁制作与应用,实际上就是掌握linux diff和patch命令的使用,而这两个命令与linux其它命令一样,也是比较容易掌握的。如果你也有与我之前一样的敬畏心理,建议你不如早早放下这个心理包袱,赶紧掌握这个知识点。 阅读全文 »

 


2013年7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布。它的下载页面标题为:Let’s hear it for Qt 5.1! 多么美好的诗句。

关注Qt很久了,非常喜欢它。在2011年的时候曾经自学过一段时间,那时用的是Qt 4.7版本。虽然Qt是一个很庞大的东东,但不得不说,它具有极其优良的架构,尤其是它的跨平台特性和独创的信号槽机制。 阅读全文 »

 


前几天,同事给我秀了一段代码,初看之时,没弄懂其作用。这并不意外,因为我对这段代码所用到的C语言异或^操作符不熟悉。一是在我的编程里这个操作符不常用,看其它代码也少见到;二是我编程的基础知识本身就不是很扎实。

同事秀的这段代码以前并未见过,当他说出这段代码的功能后,先是惊讶其精妙绝伦地实现,然再搜索其原理,发现其也不是想象的那么美好。在这里一一探究。 阅读全文 »

 


近入7月,烈日炎炎,酷暑难当。偌大的办公室里虽然凉快,感觉却空当当的。与两年前相比,判若两境。

两年前,我刚进入这家公司,安排在现在的部门工作,并以此为荣耀。从现在来看,那时应该是部门发展的鼎盛时期,这从当时部门人数就可以看出来了——新来的同事都快没有座位安排了。 阅读全文 »

 


问答网站stackoverflow.com的一个主要功能体现就是:软件开发人员无需再从书本上学习编程,就像Joel所说的

“程序员看起来都不再读书。市场上编程方面书籍的数量和编程从业人数相比少得可怜”。

2004年在《The Shlemiel Way of Software》一书中Joel也表达了相同的观点:

“大部分的人都不读点什么或写点什么。大部分的程序员都不读软件开发方面的书籍,他们不去软件开发方面的网站,他们不去Slashdot参与讨论”。 阅读全文 »

 


最近在移植新版本代码,但发现在新版本软件中,居然找不到子网掩码这个参数。与旧版本软件不同的是,IP地址后面接了“/24”,类似192.168.1.1/24,但一直未去理会IP地址后面这个“/24”表示什么意思。

通过跟踪代码发现,这个“/24”大有含义,于是上网搜索了下,不查不知道,一查发现这就是我在苦苦寻找的子网掩码!这是一种现在流行的子网掩码表示方法,这种表示方法很好计算子网络的规模。

明白过来后,恍然大悟,记得以前也曾接搜索了解过“/24”的含义,看样子是忘记了。

这里转载了一篇优秀文章,详细介绍了IP地址的定义及其划分、子网掩码的表示及其作用,让大家可以更好的了解一些网络通信的基础知识。 阅读全文 »

 


整个LCD驱动主要由LCD初始化、LCD底层函数、framebuf实例、framebuf IO操作内联文件及其头文件自动生成文件等4部分组成。上节介绍了LCD驱动的前面3个部分。

本节介绍LCD驱动的framebuf IO操作内联文件及其头文件自动生成文件这个部分。本章最后会展示一个简单的应用测试程序。 阅读全文 »

© 2012 velep.com | reille blog | 管理| 粤ICP备12094833号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量