- 博客(29)
- 资源 (37)
- 收藏
- 关注
原创 如何编译nodemcu的源码?
首先github上有源码https://github.com/nodemcu/nodemcu-firmware但是我这里用的不是这个源码,而是在百度网盘里面http://pan.baidu.com/s/1qWt3PUk#path=%252F%25E5%25AE%2589%25E4%25BF%25A1%25E5%258F%25AF%25E7%25A7%2591%25E6%258A%258
2016-01-29 14:29:21 3202
原创 为什么最近搞LUA毫无进展?
为什么最近搞LUA毫无进展?主要还是没有目标。贪多,贪全。没有具体的小的目标。自己不清楚目前这阶段到底该实现哪些功能。做出来的东西要有实用性,这就是动力。没有动力就很麻烦了。所以想像一下,做出来的东西能被用到,就是非常有成就感的事情,同时也能提高自己的技能。被自己用到或被别人用到都是可以的。最起码我自己会用到,那大概有很多场合,很多功能都是我需要的。那么目前来说先实现一个功能,这就是短
2016-01-27 15:08:10 877
原创 我的两篇原创文章在网上还是很火爆的!!原因何在?
我的两篇原创文章《STM32启动模式说明》和《51单片机C语言实例浅析》。点击量不小。事实上不是我传到百度文库里面的。我以前传到了EDNchina里面。于是别的网友传到了百度文库里面。http://wenku.baidu.com/link?url=1uINx_V8YGOqiOtTF1pV-PdMjdQQujhslnpCFdqNu_2RZA4PeGjo6FA_5FMXBy3F
2016-01-21 14:02:46 567
原创 突然觉得写个一点问题没有的代码很难
今天写某信号系统的协议,把以前写过的某项目的协议照搬过来,竟然发现以前写的代码有隐藏的bug,不过这个bug不会导致内存泄漏,也不会有任何的表现,因为我开辟的内存足够大,大到完全可以满足那个项目的要求,尽管我当时没有考虑到这点。所以我认为这仍可以叫做一个bug。
2016-01-16 22:21:25 450
原创 我在串口的偶校验竟然栽了跟头
需要实现RS485的偶校验,在C8051F单片机上。我知道SSCOM串口助手的奇偶校验不好用(网上以前听说的),所以我就先用SSCOMM的无校验与目标板卡的无校验进行调试。结果搞定了。然后找了STM32板卡设置了发送的偶校验38400, USART_WordLength_8b, USART_StopBits_1, USART_Parity_Even.于是就在C8051F板卡上各种实
2016-01-16 09:51:43 3912
原创 为什么要添加“调试”这个栏目
调试,我是不喜欢这个词的。调试往往意味着乱试。而好的程序往往是设计出来的,是严密的逻辑推理出来的。所以出色的程序员是提倡不去调试的,写好程序直接下载运行,这是有些文章提倡的套路,我也非常赞同。不提倡调试本意就是程序不是仅仅能运行的很好就可以的,如果没有严密的逻辑推理,只是靠调试,不能把所有的逻辑分支都走到。这样就导致,比如,在某些特定条件下问题的产生。可能一个月发生一次,可能二个月。。。。
2016-01-16 09:20:25 538
原创 CRC校验 CRC-16 CCITT X2.5 ADCCP SDLC/HDLC
今天被CRC坑了一天,还有昨天下午接近2个小时。和西门子的信号系统通信,信号系统的RS485总是很变态。搞得很复杂,这个西门子的还算好的。以前做过卡斯柯的,极其麻烦,各种握手。还有一个信号系统,也是CRC-CCITT的。所以基本上可以说信号系统可能全是CCITT的吧。本来关于校验没什么好弄的。可是西门子给的例子我怎么算也算不出来那个CRC值。西门子描述如下:Name: “CRC-1
2016-01-14 15:55:29 2171 3
转载 [王垠系列]谈程序的正确性
谈程序的正确性不管在学术圈还是在工业界,总有很多人过度的关心所谓“程序的正确性”,有些甚至到了战战兢兢,舍本逐末的地步。下面举几个例子:很多人把测试(test)看得过于重要。代码八字还没一撇呢,就吵着要怎么怎么严格的测试,防止“将来”有人把代码改错了。这些人到后来往往被测试捆住了手脚,寸步难行。不但代码bug百出,连测试里面也很多bug。有些人对于“使用什么语言”这个问
2016-01-07 09:30:27 823 1
转载 [王垠系列]所谓软件工程
所谓软件工程很多编程的人包括我,头衔叫做“软件工程师”(software engineer),然而我却不喜欢这个名字。我喜欢把自己叫做“程序员”(programmer)或者“计算机科学家”(computer scientist)。这是为什么呢?这需要从“软件工程”(software engineering)在现实中的涵义谈起。有人把软件工程这个领域的本质总结为:“How to pr
2016-01-07 09:23:43 906 3
转载 [王垠系列]编辑器与IDE
无谓的编辑器战争很多人都喜欢争论哪个编辑器是最好的。其中最大的争论莫过于 Emacs 与 vi 之争。vi 的支持者喜欢说:“看 vi 打起字来多快,手指完全不离键盘,连方向键都可以不用。”Emacs 的支持者往往对此不屑一顾,说:“打字再快又有什么用。我在 Emacs 里面按一个键,等于你在 vi 里面按几十个键。”其实还有另外一帮人,这些人喜欢说:“对于 Emacs 与 vi
2016-01-07 09:22:38 1648
转载 [王垠系列]一种新的操作系统设计
一种新的操作系统设计我一直在试图利用程序语言的设计原理,设计一种超越“Unix 哲学”的操作系统。这里是我的设想:这种系统里面的程序间通信不使用无结构的字符串,而是使用带有类型和结构的数据。在这样的系统里面,Unix 和其它类似操作系统(比如 Windows)里的所谓“应用程序”的概念基本上完全消失。系统由一个个很小的“函数”组成,每个函数都可以调用另外一个函数,通过参数传递数
2016-01-07 09:21:21 1624
转载 [王垠系列]谈程序的“通用性”
谈程序的“通用性”在现实的软件工程中,我经常发现这样的一种现象。本来用很简单的代码就可以解决的问题,却因为设计者过分的关注了“通用性”,“可维护性”和“可扩展性”,被搞得绕了几道弯,让人琢磨不透。这些人的思维方式是这样的:“将来这段代码可能会被用到更多的场合,所以我现在就考虑到扩展问题。”于是乎,他们在代码中加入了各种各样的“框架结构”,目的是为了在将来有新的需要的时候,代码能够“
2016-01-07 09:20:36 644
转载 [王垠系列]谈“测试驱动的开发”
谈“测试驱动的开发”现在的很多公司,包括 Google 和我现在的公司 Coverity,都喜欢一种“测试驱动的开发”(test-driven development)。它的原理是,在写程序的时候同时写上自动化的“单元测试”(unit test)。在代码修改之后,这些测试可以批量的被运行,这样就可以避免不应该出现的错误。这不是一个坏主意。我在 Kent 的编译器课程上也使用了很多测
2016-01-07 09:19:46 614
转载 [王垠系列]什么是“脚本语言”
什么是“脚本语言”很多人都会用一些“脚本语言”(scripting language),却很少有人真正的知道到底什么是脚本语言。很多人用 shell 写一些“脚本”来完成日常的任务,用 Perl 或者 sed 来处理一些文本文件,很多公司用“脚本”来跑它们的“build”(叫做 build script)。那么,到底什么是“脚本语言”与“非脚本语言”的区别呢?其实“脚本语言”与“非
2016-01-07 09:18:58 2820
转载 [王垠系列]论对东西的崇拜
论对东西的崇拜在之前的几篇博文里面,我多次提到了 Lisp,它相对于其它语言的优势,以及 Lisp Machine 相对于 Unix 的优点。于是有人来信请教我如何学习 Lisp,也有人问我为什么 Lisp Machine 没有“流行”起来。我感觉到了他们言语中对 Lisp 的敬畏和好奇心,但也感觉到了一些隐含的怀疑。这是一种复杂的感觉,仿佛我在原始人的部落兜售一些原子能小玩具,却
2016-01-07 09:17:48 475
转载 [王垠系列]“解决问题”与“消灭问题”
“解决问题”与“消灭问题”一直以来,人们都重视“解决问题”的能力,却忽视了另一种重要的能力:“消灭问题”的能力。各种各样的竞赛,分数和排名,让很多人从小就片面的认为,能“解决问题”的人,就是最厉害的人。拿到一个问题就埋头求解,很少考虑这问题到底有什么意义。这种呆板的思维方式,不仅存在于低级的“应试”和“解题”过程,而且蔓延到了很多艰深的研究领域。如果你仔细观察就会发现,很多“难题”
2016-01-07 09:16:28 607
转载 [王垠系列]程序语言的常见设计错误(1) - 片面追求短小
程序语言的常见设计错误(1) - 片面追求短小我经常以自己写“非常短小”的代码为豪。有一些人听了之后很赞赏,然后说他也很喜欢写短小的代码,接着就开始说 C 语言其实有很多巧妙的设计,可以让代码变得非常短小。然后我才发现,这些人所谓的“短小”跟我所说的“短小”完全不是一回事。我的程序的“短小”是建立在语义明确,概念清晰的基础上的。在此基础上,我力求去掉冗余的,绕弯子的,混淆的代码,让
2016-01-07 09:15:30 621
转载 [王垠系列]谈语法
谈语法使用和研究过这么多程序语言之后,我觉得几乎不包含多余功能的语言,只有一个:Scheme。所以我觉得它是学习程序设计最好的入手点和进阶工具。当然 Scheme 也有少数的问题,而且缺少一些我想要的功能,但这些都瑕不掩瑜。在用了很多其它的语言之后,我觉得 Scheme 真的是非常优美的语言。要想指出 Scheme 所有的优点,并且跟其它语言比较,恐怕要写一本书才讲的清楚。
2016-01-07 09:14:37 888
转载 [王垠系列]Oberon 操作系统:被忽略的珍宝
Oberon 操作系统:被忽略的珍宝推荐一篇很久以前看的文章:Oberon - The Overlooked Jewel它介绍的是 Niklaus Wirth 设计的一种操作系统,叫做 Oberon。Niklaus Wirth 就是大家熟知的 Pascal 语言的设计者。绝大部分人都没听说过有 Oberon 这个东西存在,更难以把它跟 Niklaus Wirth 的大名挂上钩。所以
2016-01-07 09:13:41 1642
转载 [王垠系列]谈 Linux,Windows 和 Mac
谈 Linux,Windows 和 Mac这段时间受到很多人的来信。他们看了我很早以前写的推崇 Linux 的文章,想知道如何“抛弃 Windows,学习 Linux”。天知道他们在哪里找到那么老的文章,真是好事不出门…… 我觉得我有责任消除我以前的文章对人的误导,洗清我这个“Linux 狂热分子”的恶名。我觉得我已经写过一些澄清的文章了,可是怎么还是有人来信问 Linux 的问题。也许因
2016-01-07 09:12:43 698
转载 [王垠系列]解密“设计模式”
解密“设计模式”有些人问我,你说学习操作系统的最好办法是学习程序设计。那我们是不是应该学习一些“设计模式”(design patterns)。这是一个我很早就有定论,而且经过实践检验的问题,所以想在这里做一个总结。总的来说,如果光从字面上讲,程序里确实是有一些“模式”可以发掘的。因为你总是可以借鉴以前的经验,用来构造新的程序。你可以把这种经验叫做“模式”。可是自从《设计模式》(通常
2016-01-07 09:11:29 847 2
转载 [王垠系列]Braid - 一个发人深思的游戏
Braid - 一个发人深思的游戏我已经很久很久没有打游戏了(如果不算 Angry Birds 之类用来打发时间的游戏的话)。我的最后一个真正意义上的游戏机,是 PlayStation 1。在那上面,我真正欣赏的最后一个游戏,是 [Metal Gear Solid (1)]。我曾经是一个游戏迷,可是进入了计算机专业的学习之后,我就开始失去对游戏的兴趣,基本上每玩一个都让我失
2016-01-07 09:10:38 1146
转载 [王垠系列]TeXmacs:一个真正“所见即所得”的排版系统
TeXmacs:一个真正“所见即所得”的排版系统好久没有推荐过自己喜欢的软件了,现在推荐一款我在美国做数学作业的私家法宝:TeXmacs。我恐怕不可能跟以前那么有闲心写个长篇的 TeXmacs 说明文档了,不过这东西如此的简单好用,所以基本上不用我写什么文档了。鉴于知道的人很少,不理解它的人很多,这里只是帮它打个广告,吊一下胃口。TeXmacs 的主要特点是:跟
2016-01-07 09:09:18 3546 4
转载 [王垠系列]怎样写一个解释器
怎样写一个解释器这是一篇解释器的入门教程。虽然我试图从最基本的原理讲起,尽量让这篇文章不依赖于其它知识,但是这篇教程并不是针对编程的入门知识,所以我假设你已经学会了最基本的 Scheme 和函数式编程。我不是很推崇函数式编程,但它里面确实包含了很重要的一些方法。如果你完全不了解这些,可以读一下 SICP 的第一,二章(或者接下去读 The Little Schemer)。当然你也可以继续读
2016-01-07 09:08:01 947
转载 [王垠系列]什么是语义学
什么是语义学很多人问我如何在掌握基本的程序语言技能之后进入“语义学”的学习。现在我就简单介绍一下什么是“语义”,然后推荐一本入门的书。这里我说的“语义”主要是针对程序语言,不过自然语言里的语义,其实本质上也是一样的。一个程序的“语义”通常是由另一个程序决定的,这另一个程序叫做“解释器”(interpreter)。程序只是一个数据结构,通常表示为语法树(abstract sy
2016-01-07 09:07:01 1073
转载 [王垠系列]GTF - Great Teacher Friedman
GTF - Great Teacher Friedman写小人书的老顽童Dan Friedman 是 Indiana 大学的教授,程序语言领域的创始人之一。他主要的著作《The Little Schemer》(前身叫《The Little Lisper》) 是程序语言界最具影响力的书籍之一。现在很多程序语言界的元老级人物,当年都是看这本“小人书”学会了 Lisp/Scheme,才决
2016-01-07 09:06:02 1448
转载 [王垠系列]什么是“对用户友好”
什么是“对用户友好”当我提到一个工具“对用户不友好”(user-unfriendly)的时候,我总是被人“鄙视”。难道这就叫“以其人之道还治其人之身”?想当年有人对我抱怨 Linux 或者 TeX 对用户不友好的时候,我貌似也差不多的态度吧。现在当我指出 TeX 的各种缺点,提出新的解决方案的时候,往往会有美国同学眼角一抬,说:“菜鸟们抱怨工具不好用,那是因为他们不会用。LaTeX
2016-01-07 09:04:38 548
startup_armv7-m.7z
2020-02-09
ARM V7 体系结构参考手册-英文.7z
2020-02-05
从零开始使用CubeMX创建以太网工程.7z
2020-02-05
周立功单片机:分散加载文件浅释.pdf
2020-02-05
STM32简单工程-分析启动代码-最终为分析分散加载工程.7z
2020-02-02
micropython-1.3.6 源代码
2017-11-12
micropython-1.2.zip源代码
2017-11-12
Python网络数据采集英文 完整清晰版
2017-10-25
STM32F4 I2C通信例子 例程
2017-10-22
STM32F4 的CAN1 CAN2 双CAN收发例子
2017-10-22
STM32F4 的16通道ADC采集例程
2017-10-22
CANopen协议栈源代码和说明文件
2012-11-30
LCD12864 源码 和 仿真proteus(本人原创)
2011-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人