
代码生活
李迟
李迟,男,已婚,来自岑山溪水之地,家住一垌之尾。毕业于桂林电子科技大学三院1专业。嵌入式软件工程师,摄影师,金融学者,历史家,科学哲学爱好者,社会问题研究者。别号水田居士,木草山人。爱好广泛,精通甚少。古文、诗词、文学、小说、武侠、经济、社会等无所不涉。目前主要混迹于显示器、鼠标、键盘之间。于代码及兴趣之事中有所得,与好友谈之一二,足够了。
-
原创 新年新计划-2021年
无意间回顾博客目录,发现上一篇新年计划,是2015年2月份写的。一年之计在于春,也开始尝试写写计划。2021-02-01 01:19:27424
17
-
原创 遇到一个在脚本中读取文件内容占用文件句柄的小问题
一般来说,嵌入式设备的程序是上电自动运行的。设备系统启动后会自动运行某些系统级脚本(/ect/rc3.d/下的脚本),最终会运行我们自定义的脚本,在该脚本中会运行应用程序。——这就是系统自动启动的一般做法。2015-07-30 22:32:23968
0
-
原创 gcc较高版本的一些编译警告收集
最近整理了下代码警告问题。这里记录一下。2015-05-06 13:00:296611
0
-
原创 用户交互输入--mtd-utils代码一例
用户交互输入示例,来自 typedef int bool;#define true 1#define false 0/** * prompt the user for confirmation */static inline int prompt(const char *msg, int def){ char *line = NULL; size_t l2014-06-03 08:34:22916
0
-
原创 再记一下sscanf的一个小问题
正在进行的项目中有个网络传输模块,需要在设备端将上位机发送的XML命令解析出来并转发到其它模块。在我测试一个获取数据的命令时,发现上位机读取到的数据是错误,看XML命令格式,明明是对的,但读到的数据就是不正确,肯定有问题。因为网络传输模块在其它项目一直使用,一直OK,现在出问题了,很郁闷。于是使出printf大法跟踪、终于找到问题原因。2015-01-18 16:23:47878
0
-
原创 寄存器位域、位操作等示例
#include /*测试结果:struct testregister_value: 0x0000feadenable: 1 type: 6 id: a value: feunion testregister_value: 0x0000feadenable: 0 type: 6 id: a value: fe*//**虚拟的寄存器,各字段:0: enable1~3:2014-06-07 11:02:312659
0
-
原创 crosstool-ng构建的一个错误的解决
这段时间,既在做一个基于已有芯片平台的项目,也要进行新芯片平台的预研。2014-08-24 14:37:251799
0
-
原创 记一次FFMPEG转avi视频保存到ftp服务器的失败尝试
项目中有一需求,将存储在硬盘上的h264码流转成Avi文件,并上传到FTP服务器。首先想到是用ffmpeg将h264转换成avi格式的文件,保存到本地磁盘,一切正常,很快完成了。2015-05-27 00:05:012412
1
-
原创 记最近遇到的几个小问题(字符串转整型溢出,汉字乱码,双网卡双默认IP)
这个月很少写文章,因为做着项目。说来惭愧,人当项目经理,我当项目经理,我却既像爹又像娘,似乎凡事亲力,同志们太依赖项目经理了。什么编译环境、SVN提交代码,周报提交,无一不是问过我。我想不理这事,无奈有的领导太忙,有的开发人员太懒,而我又是“老好人”,只想项目快点结束,于是就要这种情况了。不过,最主要还是有人推我下坑,说我以前做项目的管理能力行,所以叫我做项目经理了。我都没当过项目经理,哪来的管理2015-07-22 13:45:43869
0
-
原创 BMP图片读写接口函数
我很早就学习了BMP位图。印象中,那时应该是在研究AVI视频文件格式时顺便研究的,或者是研究YUV转RGB时顺便研究的。但未写文章出来,我一直以为我的学习只有在发表了文章才算是完结,否则不能算是我做过了这个事。在这里补上当初读、写BMP的函数代码。2015-07-09 23:14:102752
0
-
原创 遇到一个Linux系统时间突变问题
最近遇到一个Linux系统时间无法更改小于某个固定时间的问题。2015-06-19 13:44:254848
0
-
原创 遇到一个在linux下无法跨网段发送接收广播包的问题
正在进行的项目中有个网络广播包搜索设备的模块,需要在上位机发送搜索设备的XML命令,然后设备端再发真正的搜索广播包到交换机上所有的连接设备。测试部反馈了一个bug:无法跨网段搜索到设备。对照代码,设备端的发广播包的代码和上位机直接发广播包的代码是一样的。感觉没什么问题,但就是不成功,肯定有问题。因为广播包收、发模块在其它项目一直使用,一直OK,现在出问题了,很郁闷,加上项目deadline快到了,项目经理直接说不能因为这个问题影响了发布。于是只能自己独立广播包模块出来单独测试,专门找此bug。终于一天多的时2015-01-22 13:22:014240
2
-
原创 遇到一个gcc编译器版本导致的运行结果有差异的问题
正在进行的项目中有个网络模块,需要在上位机将数据包加密,然后在设备端将数据包解密。两者使用的加密方法是可逆的(大概是异或之类的)。在我测试时,发现设备上解出来的数据不正常,得不到上位机未加密前的数据。因为这个模块在其它项目一直使用,一直OK,现在出问题了,很郁闷。而且该模块嵌入到其它大的功能模块,后来将加密、解密模块独立出来测试。当定位到解密这个点上,都已经过了大半天了。2015-01-17 14:38:313958
0
-
原创 一个x86平台的spi flash驱动移植笔记
最近一个项目,要用到flash存放一些数据,所以要内核支持。于是就2014-11-21 13:00:541663
0
-
原创 充电桩前端对接的一点总结
笔者近一年来接触了大约八、九家不同品牌的充电桩协议,主要做协议接入,并与后台通信的工作。本文对接入进行一些总结。概述其实接入充电桩很简单的:根据厂家协议文档的格式写代码,解析协议,然后分析,存储,并与后台交互。上传的内容有:开关电结果,充电过程数据。下发的有:开关电指令,时间同步指令。——就这么简单。然而,凡事都不简单,不容易。协议有的厂家协议文档写的规范,有的却不是。规范的文档,...2019-09-30 23:52:331839
10
-
原创 我在外包的日子35:二期上线
昨天同事要求今天早上7点到岗,进行二期系统上线的部署。临下班时,同事又一次提醒此事。晚上调手机闹钟为5点半,但不习惯早睡,不习惯早起,最终6点才起来,时间紧就没煮粥,就在附近买个包子,但时间太早了,人家没开门,于是一边骑车上班,一边观察包子店铺是否开门。最终如愿买到包子,也在7点半到达公司。升级7时许,同事陆续到岗。根据安排,正式启动部署行动:同事切断一期系统充值、扫码等通道。我更新中间...2019-08-23 23:29:24481
0
-
原创 记一次设备网络问题的排查
李迟按:清明假期,同事在群里at我,说某场站网络有问题,叫我有空去看看。我收到的网络异常邮件已经几千封了,因为位置不高,所以静待通知。根据log猜测是厂家设备的问题。因为假期,我也无能为力。后来上班,同事叫我去排查,到现场后,更加确认是设备问题。但当时厂家的人因故没来。后来周末同事又在群里at我,说厂家工程师叫我去那边排查。最终解决了问题。在文后总结了这类问题的一般解决思路。2019-04-14 20:08:01510
0
-
原创 记dropbox与git不和谐的一个问题
目前我基本都是使用git来管理代码,用dropbox存储自己写的代码还有git仓库。最近提交远程git仓库时,发现出现了冲突,网上资料比较少,不过还是找了一些方法。实际解决十分简单。某次用pull来更新一下本地代码时,出现了如下的错误:git.exe pull -v --progress "origin"fatal: Reference has invalid format2013-12-21 09:59:292081
1
-
原创 遇到一个把.o文件strip后出现的奇怪问题
最近参与的任务是ONVIF的重构。在把live555组播搞完后,就正式投入ONVIF的事了。同事刘大神已经把ONVIF重新做了一套框架出来了,大体代码已经实现了,我就把它移植到设备上。但在编译过程中因为一个问题导致花了一天的时间才解决。2016-01-15 22:52:16980
0
-
原创 pelco协议及其实现的简单认识
在搞visca的同时顺便也搞了pelco。这里再做个笔记。pelco,中文翻译为“”2014-07-03 13:50:496016
1
-
原创 遇到一个日志文件变化带来的文件句柄问题
正在进行的项目中有个系统调试日志存储的功能,需要存储打印信息。测试部反馈了一个bug:调试日志文件有时候不更新。对照代码,项目用的代码和之前项目的代码是一样的。感觉没什么问题,我自己测试没发现有不更新的情况,但测试部已经反馈过几次了,肯定有问题。项目deadline很快到了(按计划,应该是本文发表前4天已经是deadline了),——也正因为如此,开始了本年第一次周末加班。项目经理不放过这个问题,经分析代码,最终算是解决了问题。2015-01-25 17:47:121577
0
-
原创 ubuntu10.04添加账户示例
前不久,部门来了个新同事,很不幸,领导又让我来指导新人。教新人这种事吃力不讨好,既要邮件上的来往,又要亲口告诉新人一些事。但你的任务还要按时完成,上上级领导(比部门领导还高一级的领导)安排任务时,可不管部门是否来了新人,你是否正在教新人。这个“导师”制,是去年开始的。哥来公司时连个文档都是自己写,现在好了,新人来了,有人教了。两个月前,部门还在整理嵌入式的知识体系,这下更好了,啥都不用2014-06-29 19:35:23722
0
-
原创 visca协议及其实现的简单认识
最近在搞visca协议,在这里写写,算是个记录。从题2014-06-30 14:09:016676
7
-
原创 pelco-d协议数据解析示例
前段时间写了有关pelco协议的一些笔记,后来,有个小模块是接收pelco格式的数据,然后解析出是什么命令,于是又写了个简单的解析函数。这个函数没什么技术含量。主要思路:1、逐字节解析,保证每一字节都处理到;2、找到0xff,此为命令头;3、找到命令结束字符,方法是根据pelco命令组装的算法,——其实就是当某一字节的值是前面几个的校验和就结束,有一点要校验和正确但长度不符合p2014-08-14 21:57:414322
0
-
原创 继续收集gcc一些编译警告
大约半年前,写了篇关于gcc编译警告的文章,因为忍受不了当时做的项目的刷屏式的编译警告。没想到,现在又要进行此事。因为当前的代码分支实在太多,而且又各自为政,没法通用——与当初重构的初衷已背离,当然,这是架构师要做的事,即使公司现在正在推行“匠心精神”,我还是没权力和能力想去推架构。所以,注定是一个修正几年前代码遗留warning的小弟。在修正过程中,真正认为到代码编写的重要性。这份庞大的代码我只贡献不到2%吧,但还是好好总结一下,以免自己日后再犯。2015-10-20 22:36:18755
0
-
原创 最近的一些事
上月底本月初,公司搬地方了,新办公点刚刚装修就搬了。听说甲醛对人体有害,虽然公司口口声声说测试过合格,但我还是买面罩带,在面子和健康前,我不选面子。天可怜见,这个月我调休请假特别多(我不会说为什么会有那么多假请的),有一半以上的时间不在那里吸有害气体。趁着这可能一辈子都不会有的大假学点东西。当然,在休息中学习,效率不是一般的差。上个月中旬,我挂名临时项目经理做的项目交付。之后公司内部的客户部门2015-09-19 16:54:56707
0
-
原创 重新建站记:下
前面文章《重新建站记:上》讲述了重新建站的原由及其它的前期准备工作,本文主要讲讲重新建站的一些过程、记录。1、htaccess文件网上说wp的固定链接要用到htaccess文件,因为已经在本地搭建了环境,我就直接使用生成好的文件。2、同步文章把文章同步到网络上并不用手工一篇一篇地复制,直接使用wp本身的导入导出功能,——其它就是生成一个XML文件。但还是有修改的。比2014-09-20 11:46:26717
0
-
原创 重新建站记:上
我的网站有一年多没打理了,一来自己懒惰,二来因为懒惰就放之任之——有点自暴自弃。结果某天打开网站文章时,发现不行了。首先是访问首页出现500错误:500 Internal Server Error,赶紧找客服,工作人员说htaccess文件有问题,帮我改名字了。之后好像可以访问了,但子页面访问不了——是所有的页面,但后台是可以的。后来我查了htaccess文件,发现内容都没变过,不懂那边的工作人员2014-09-20 11:42:54607
0
-
原创 2014年上半年工作随记
眨眼又过了半年。去年当了一个小部门的副组长,连我,一共4个人,事情比以往多了,加班也多了。今年部门被合并了,事情更多了。从前又做管理,又做技术,很累,曾经一个时间,我心里一直在纠结离开或不离开——在付出和报酬不成比例情况下,一直在纠结,但却没有下定决心。于是,时间又过去半年了。现在我做回小弟了,有些事不应该管了,就可以当不看见了。其实我还是挺热心的,为了帮同事编译一个库,可以拿2014-07-11 23:30:20656
0
-
原创 移植内核过程的几个问题
最近一段时间主要是搞内核,当然,也要和其它部门扯皮。这还是我第一次在实际工作是移植内核,以前那些,只能算是学习、积累。这里记一下移植过程的一些经验。一、管脚复用之前我只移植过S4C2440平台的内核,该芯片datasheet不多,一个文档搞定,不像我现在用的芯片,有N个文档要看,而且有N个核。像GPIO的配置,也比2440复杂得多。在管脚复用上,我掉进过2个坑里。我们统一在u-bo2013-12-22 10:42:10985
1
-
原创 我的git仓库,顺记github配置
我几年前就开始使用git了,不过今年才真正大规模、频繁地使用:自己代码存储管理,部门项目开发过程的代码管理和共享。公司实际上只使用了svn,并没有用git,所以领导们没有创建svn给我们用之前,只好用git管理了——现在一个项目目录即有git也有svn,个人感觉还可以,不会搞混乱,而且也便于开发,因为提交svn远比提交git严格。至于客户端,我既用linux下的svn、git命令,也用Wind2013-12-22 09:55:24712
0
-
原创 目前使用的工具及开发方式
一、版本控制公司使用SVN管理代码,不过个人及习惯使用git来管理。去年在组内小范围推广git,同时向其它部门建议使用,并写了入门文档(我写的)。如今看,组内的效果不错。至于其它部门,不知是没时间还是其它原因,至今未发现有人使用。平时写的代码模块(属于自己积累的一个代码库,包含了常用的各个模块),是用git来管理的,放到dropbox或金山快盘目录中,这样,在公司和家里就可以同步开发了。另2013-05-14 22:39:48725
0
-
原创 shell脚本执行命令错误处理
工作有较久时间了,在公司最大有感受就是:有些部门的有些人从不看说明文档;从不看readme文件;从不看代码注释;从不看使用。一旦出错,不从自身找原因,第一个想到的,是问别人,问来问去,最终会问到当事人:当时写代码或写脚本的那个人。我遇到过好几次。有一个脚本,明明已经有readme文件说明要用root权限来执行脚本,脚本中也明明说了要用root权限。但就是不知人家没看到还是没意识到要看,经常搞错,经2013-04-16 13:51:079451
0
-
原创 关于近段时间不更新博客的借口
无意中才知道自己已经很久很久没有更新博客、个人主页了。知识更新得太多了,而且我所搞的那几个东东已经没有在业余时间研究了。一个原因是因为工作,工作了就没有多少专门用于研究的业余时间。这是一个不好的借口。因为时间是挤出来的,以前的拼命劲,现在已经没有了;以前的那些激情,现在已经没有了。在单位中时时看着代码,下班后真的不想再看了,除非逼着你看,或者你很乐意去看。我所在的公司,待遇算中等,福利不算差,2013-04-14 18:11:12929
1
-
原创 代码随笔——点阵汉字在LCD上的显示
代码随笔——点阵汉字在LCD上的显示注:本文约在半年到一年前写的。其实我以前从没想过写Framebuffer的代码,网上流传较多的是LCD的移植(主要改参数),之后没下文了。不过,曾经兴致冲冲地想搞Qtopia移植,在这过程中碰到过一个叫Tslib的东西。后来Qtopia没搞成功,倒研究起Tslib来了——对它的底层原理还没看明白,对于一些代码技巧及代码结构组织还是研究了一点。这个过程2012-05-02 15:31:102776
1
-
原创 对'\0'的敬畏——由阶乘想到的
背景:验证DSPLink,正在艰难入门TI的DaVinci平台。老大给的任务是验证DSPLink,一开始不理解,看TI的文档也没什么感觉,后来说计算CRC也可以,那时对CRC还没了解(不会应用于代码中),干脆搞个阶乘得了。于是上网找了个大数阶乘的例子,修改一下。代码如下:char result[128] = {0};// num <= 80void factorial(in2011-10-25 17:40:37559
0
-
原创 更新wordpress遇到prepare警告问题的解决
好久没搞那个博客了,前段时间更新wordpress到3.5,但与所用的iNove主题有些不兼容,页面底下会有个警告:2014-07-11 23:37:43866
0
-
原创 一个while的小小问题
最终结果i不为0,而是-1int main(void){ int i = 10; while (i--) { printf("hello: %d\n", i); } if (i == 0) { printf("last-----------i == 0\n"); } else {2014-05-29 12:55:51795
0
-
原创 我参与的一个项目的继续总结:技术篇
看了年初写的总结,主要还是在于环境的搭建,底层的支撑。所做的事,大部分是从无到有的过程。这次继续参与项目,基本上是在搞业务层的东西。当然,除了研发外,还在做项目管理方面的工作。2015-09-03 23:56:24743
0
-
原创 遇到一个因socket未关闭引发的文件句柄用完问题
“爱提踢斯”项目最近遇到一个问题,当FTP服务器磁盘没有空间时,设备会不断复位——这是测试人员反馈的。我们拿到log后,看到一个通信所用的文件打开失败。不断打印too many open file,然后超时设备复位。同时我们看到数据库文件打开失败,无法写入数据。一个现象,看到好几处问题。还是从最初的表现来入手。虽然把bug指派给别人,但从时间、进度上考虑,周末还是去加班。而最后,解决了问题。2015-08-01 14:38:508114
0