工作日记
dabbler_zhu
擅长和现专注于嵌入式系统,知识面广,优秀的系统分析和架构能力
展开
-
VHDL/Verilog里的软件工程
今年开始接触更改产品的FPGA代码,感觉公司虽然搞了很多年了,但是FPGA这块缺乏一些“软件工程”上的概念导入。如果对于Altera/Xilinx公司,如果做IP库,可能需要考虑各种编译器的兼容性,不能引入太多的“高级”语法,但是,对于一个公司而言,我认为代码的可维护性是放在第一位的,是在编译器兼容性之类之上的要求。1. VHDL总体而言,VHDL提供了如下一些语法特性,用于简化代码:1.1 record和type定义例如对于KM1024i喷头控制,我们可以定义如下: -- 喷头控原创 2020-09-13 10:09:51 · 505 阅读 · 0 评论 -
安装研发服务器
重装服务器真是一个耗精力的过程,尤其是用ghost做数据全盘备份,数据ghost恢复蜗牛一般的速度,再加上ghost居然人生第一次碰到了软件会异常问题,真的是让人痛苦不堪啊。从现在想来,可能不如用imagex来备份数据,imagex至少可以直接mount,省了我不断的恢复过程啊。回想起来,选ghost唯一的理由,应该是:全盘备份,可以必要时候全盘恢复。不过,这个不是这里的重点。这里主要讲服务安装时...原创 2020-02-07 16:58:33 · 2385 阅读 · 0 评论 -
ARM调试器只能偶尔连接成功问题
这里分析一个ARM板子JTAG调试器经常连接失败,只能偶尔连上目标板问题。背景这是原先另一个部门的板子,在部门合并之后,最近要对这个板子的代码体系进行转移,在过问开发进度时,工程师反映这个板子调试很难连接,所以错误不好定位。这个问题前段时间反映过,但是当时比较忙,没有过问。现在看起来这个问题影响问题定位了,所以看起来这个问题需要彻底看一下了。听原先负责这个板子的工程师,这些年也都是这样,这...原创 2019-09-25 07:23:12 · 327 阅读 · 0 评论 -
将Windows系统移到另一个硬盘
原先的128GB SSD,给Windows用是够了,最近虚拟机用得多,靠以前的SSD外挂着用,实在有点不爽,就入手一个256GB的,重装系统是个令人头疼的事情,当然不能干。想起来以前另一个机器操作的时候,查过直接复制分区就可以。所以直接启动到另一个临时系统,做整盘ghost。替换以后,发现系统启动不了了。想了想,启动到Linux,dd,然后手动调整分区,再安装好,启动,成功。移动系统就是这么简单,...原创 2018-03-29 15:51:01 · 11699 阅读 · 0 评论 -
头文件包含顺序以及设计原则
关于C的头文件包含,我认为体现了软件的模块设计以及包含关系,对于头文件包含,我个人看法如下:1. 一个基础头文件提供常用的数据类型、修饰符以及基础操作宏。例如叫basicdef.h2. 头文件尽量只包含 basicdef.h,依赖模块的头文件,也未必需要加到头文件中。3. global.h作为基础头文件,包含了其他基础的应用用的头文件,一般作为第一个文件包含在应用相关c文件中。4.原创 2017-08-10 11:51:12 · 2676 阅读 · 0 评论 -
研发人员考核与激励学习总结
首先说一下,这个培训还是非常好的,基本上是我碰到的收益最大的一个培训。考核的顺序考核一定是从上到下,企业一定要形成目标,然后层层分解目标,考核就是各级对目标达成情况进行打分。对于一线研发人员的考评我们都知道,对于一线研发人员,是不适合用KPI进行考核的,这里建议采用PBC(个人绩效承诺)方式对员工进行考核。即首先员工进行个人业绩承诺,制定个人对于部门、项目以及个人成原创 2016-04-09 22:14:28 · 2221 阅读 · 0 评论 -
2014年度周会总结
去年开始在周会贯彻宣讲我的一些开发的理念,以下是对去年主要念叨点的总结:程序员的素养素养,我觉得就是一个群体对于有利于群体整体发展的一些规则。对于社会,就可能体现为道德。人生活在不同的圈子里,就有不同的素养要求。素养是有利于群体,从而有利于个人,但是对于具体某事而言,可能是不利于当事个人的。对于开发人员而言,我能想到的:1. 对代码负责,不用过客心态对待代码;2. 代码风格和代原创 2015-03-20 10:54:52 · 752 阅读 · 0 评论 -
类继承的设计
公司新来一个小伙,设计类的时候喜欢这么搞,例如要实现一个串口通讯类原创 2014-05-05 16:49:29 · 800 阅读 · 0 评论 -
PowerPC的U-Boot Nand启动SPL技巧
PowerPC U-Boot程序的Nand启动spl处理很有点意思,由于Nand只有4k可靠,所以u-boot的NAND启动由3部分构成:SPL1,SPL2和u-boot本体。在SPL1结束的位置,代码大概如下:#ifdef CONFIG_NAND_SPL_S1 mflr r8 li r3,0x1000 add r8,r8,r3 /* Shift address by 0x1原创 2013-01-09 12:42:24 · 1272 阅读 · 0 评论 -
NFS安装
nfs需要的相关服务为portmap(centos下为rpcbind),quota。注意quota要安装。原创 2012-09-02 23:44:42 · 305 阅读 · 0 评论 -
项目开发中的“绕”
项目开发中的“绕” 一个项目在开发过程中,不可避免会遇到一些问题,出现这些问题的时候,该怎么办。目前我看到的处理方法无外乎两种,一种就是找到问题的根源,解决它。另外就是绕开它。就纯粹技术开发角度上讲,“绕”当然是不可接受的,在这之前我对待问题的基本态度也是找到根源,解决它,不然心里不舒服。但是从项目管理角度上讲,第一种方法就未必是当然的选择了,其中要考虑项目的进度等要求。8月份跳到了一家公司原创 2012-01-04 21:33:53 · 447 阅读 · 0 评论 -
xnix下的touch命令
对touch命令,一直有个印象,但是一直不知道有什么用处,昨天才知道touch命令真是很有用的。项目中,开发测试中,板子上的FW版本众多,后台软件也没成熟,经常要确认板子上的FW的版本,然而,又很难每次都RebuildAll,如果含有__DATE__宏的源文件没有修改,就会导致FW不能更新版本日期信息。这时候就有touch的用武之地了。例如在我们的项目中,golbal.c中有__DATE_原创 2011-12-17 10:23:08 · 600 阅读 · 0 评论 -
嵌入式项目设计应该注意的事项
1. 模块化设计,模块之间的耦合度一定要低。这样无论对于扩展,延续性,健壮性都有好处。2. 保持清晰的Debug系统,尤其对于带有一定平台性质的项目,一定要建立一个清晰的Debug系统。Debug系统在工作的时候,不应该成为系统的瓶颈。例如,使用串口输出Debug信息,不应该使用同步方式,一定要带高速缓冲。原创 2011-12-17 14:22:29 · 422 阅读 · 1 评论 -
CAN收发器MCP2551的问题
最近项目中使用CAN通讯,MCP2551应该是用得比较广的CAN收发器了吧。实际使用过程中,发现有时候会开机通讯不上。最后发现出故障时MCP2551输出到CAN总线的信号CANH和CANL是一样的,极性相同。而正常情况下应该在显性位时极性相反。在Microchip的论坛上也有人发过类似经历的帖子。目前而言,还不知道什么原因,挺奇怪的,这么简单的片子,怎么会有这个问题呢。原创 2011-12-17 09:58:59 · 3726 阅读 · 3 评论 -
LPC2368的CAN调试
调试LPC2368的CAN程序,出了一个奇怪的现象, 挂的CAN接收器已经能够收到报文,但是LPC2368还是不停地发送,断下来看,还在发送中,没有发送完成,当然发送也出错了。最后查发现CAN接收管脚没有配成CAN,导致CAN模块不能接收RX信号。真晕啊。原创 2011-09-21 14:43:02 · 733 阅读 · 2 评论