自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

leochen_career的专栏

做程序员就要像个程序员

  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 UART(SPI或I2C)如何接收变长数据帧(接收数据时不清楚需要接收的数据长度)

在阅读NXP、ST等厂家提供的MCU的SDK代码时,经常会发现在提供的一些驱动库函数中,uart、i2c、spi等驱动的接收函数API,都需要传入一个参数,这个参数就是期望接收的数据长度(expected bytes),当sdk底层接收的数据长度达到expected bytes时,触发用户注册的回调函数,通知用户数据接收完毕.sdk中的这种设计,在收发都是定长数据的使用场景中,非常方便使用。比如...

2020-02-18 11:07:48 1936

原创 uboot_v2016 版本中fw_printenv的编译问题

最近研究fail-safe的嵌入式软件升级方案,需要在linux环境下修改uboot中的环境变量,所以需要交叉编译uboot中的/tool/env代码,编译过程中遇到了很多问题,最终完美解决了。我的交叉编译工具用的是freescal的imx6平台提供的arm-poky-linux-gnueabi-gcc套件,该套件是由yocto平台生成的。1.按照网上的教程,设置完交叉编译的环境变量后,执行m...

2018-07-13 10:30:20 2313

转载 imx6设备树(dts)pinctrl解析

http://blog.csdn.net/michaelcao1980/article/details/50730421最近在移植linux,用到kernel版本为3.14.28,在高版本的内核源码中用到了设备树(device-tree),设备树中用到pinctrl的配置,记录一下。1、普通设置在配置串口时,pinctrl的配置信息如下所示:[cpp

2017-12-27 17:06:03 894

原创 UBOOT通用菜单menu的实现

1. 概述在uboot中经常需要开发一个菜单,用来进行一些选项类的操作,如下图所示网上有很多介绍菜单的开发方法,但很多都是自己开发,没有统一的开发框架。最近研究uboot代码时发现,其实uboot(版本为2016)代码中有一个菜单框架,以及使用这个框架的一个具体例子,可以根据自己的需要进行适当的修改,用起来非常方便。2.具体实现菜单框架代码位于/common/menu.c文...

2017-12-26 11:28:35 2440 2

原创 UBOOT中环境变量的类别

调试UBOOT时,想增加一个环境变量ipaddr,这个环境变量是uboot中默认支持的一个环境变量,当增加一个内容如下#define CONFIG_IPADDR “192.168.1.2”"ipaddr=" CONFIG_IPADDR "\0" \UBOOT启动后,解析环境变量时,提示如下错误信息## Error: flags type check failure for "ipa

2017-12-06 17:02:39 1216

原创 uboot脚本(类似于shell)

uboot启动时,通常可以中断uboot启动,进入uboot命令行界面。进入后可以设置环境变量,使用一些命令行。除此之外,还可以使用命令行脚本。

2017-11-27 17:37:52 5495

原创 shell启动程序的四种方式

linux下shell启动程序的四中方式

2017-11-22 15:49:29 26184 4

原创 yocot目录结构说明

以下结构为yocto工程的一些通用的结构。实际工程中,各个厂商可能根据自己的需要进行剪裁,但是整体的结构以及每个目录存放的内容大体上是一致的。顶层文件结构bitbake          bitbake工具目录。bitbake,是一metedate解释器,读取metedate并执行定义的task。执行bitbake命令时,其实执行的就是bitbake/bin/下面的文件。bui

2017-11-20 14:09:03 2144

原创 cdev、misc以及device三者之间的联系和区别

1.从/dev目录说起从事Linux嵌入式驱动开发的人,都很熟悉下面的一些基础知识比如对于一个char类型的设备,我想对其进行read wirte 和ioctl操作,那么我们通常会在内核驱动中实现一个file_operations结构体,然后分配主次设备号,调用cdev_add函数进行注册。从/proc/devices下面找到注册的设备的主次设备号,在用mknod /dev/char_de...

2017-11-15 15:03:02 7398 10

原创 DTB和OF

在内核的/include/linux文件目录下,有一个of.h的头文件,里面是对device node文件的一系列操作。 device node是内核通过分析dtb文件生成的节点信息,那么为什么所有的函数都是以of开头呢?of的具体含义是什么?OF,是Open Firmware的缩写。OF本意是计算机固件系统的一种标准规范,OF允许系统直接从PCI卡加载独立于平台的驱动程序,提高兼容性。OF的目的

2017-10-30 10:41:07 323

原创 VMware NAT模式无法上外网

vmware nat模式无法上外网

2017-09-07 11:50:10 2288

原创 raw nand flash 与emmc nand flash的区别

1.通常情况下,我们所说的nand flash特指raw nand flash. flash本身没有坏块管理,需要软件进行坏换管理,也叫作 非管理的nand( non-managed NAND). emmc nand flash 芯片内部集成了坏块管理,软件不需要关注,也叫作可管理的nand(managed NAND) 2 raw nand 统一性做的不够好,各个厂家都有自己的特性,给使用者带来

2017-09-06 11:54:57 4503

原创 贪婪算法与调度问题

《数据结构与算法分析》中关于贪婪算法与调度问题的理解有四个作业,j1 j2 j3 j4,每个完成时间为t1 t2 t3 t4.如果顺序进行作乐,那么总的完成时间计算为:t=j1*t1+j2*(t1+t2)+j3*(t1+t2+t3)+j4*(t1+t2+t3+t4)所以平均调度时间为 t/4

2017-08-01 09:25:02 1279 1

原创 汽车电子标识协议(类LLRP协议)wireshark插件

简介该插件是基于wireshark1.9.0版本开发的c语言插件,用来解析汽车电子标识前后台通信协议(以下简称“协议”),从而实现wireshark的抓包调试。

2017-06-08 17:07:31 1150

原创 win7环境下wireshark编译环境搭建

主要参考https://wenku.baidu.com/view/854c986d011ca300a6c39081.html编译环境WIN7,wireshark1.9.0,VS2010,Python2.7 自己搭建环境过程中遇到的问题问题一描述: E:\wireshark\wireshark-1.9.0>nmake -f Makefile.nmake verify_tools Makefile.

2017-04-28 11:26:41 1624

转载 java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log 造成的原因和解决方法

错误信息如下 Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V

2017-04-11 18:28:51 2902

原创 嵌入式linux 内核模块调试ko的 insmod问题

将自己编译的drv_fpga.ko 进行insmod后,内核中的init函数中的打印信息没有打印出来。lsmod显示已经安装成功,但是在/proc/misc/目录下(设备注册到了该目录下)没有找到对应的设备,objdump -sj.modinfo drv_fpga 显示如下信息,感觉ko文件是有问题的。通过以下方法逐一排查1.肯定是没有调到module_init中自己注册的

2017-04-01 10:54:24 2649

转载 非常适用的Sourceinsight插件,提高效率事半功倍

http://www.cnblogs.com/wangqiguo/p/3713211.html不错,mark下

2017-03-24 17:05:20 748

转载 CSDN如何转载别人的文章

csdn转载

2017-01-13 16:15:56 205

原创 ubuntu环境下android 7.0.0版本下载

由于之前做过一段时间的android开发,当时是2.3版本,开源代码里有很多值得学习的地方,所以想下载一套最新的android,方便以后学习和工作中涉及到相关内容时,能够借鉴和模仿。但下载这套7.0.0的源码真是一波三折,各种坑,各种问题,各种百度。对于我这种只是想下载源码看看的人来说,真是折腾人,还好,最后成功下载下来了。如果下载源码知识为了学习和参考,可以直接从我的网盘上下载,

2016-12-11 19:47:15 971

原创 org.apache.maven.archiver.MavenArchiver.getManifest解决方法

elipse maven工程  pom.xml报错如下:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration)完美解决方法:http://s

2016-11-13 12:59:07 9451

原创 JNA的使用方法简介(struct和union)

在使用联合体的成员时,需要提前设定将要使用的成员类型,然后再使用。否则,虽然能够成功设置值,并且编译时没有报错,但是没有办法传真正入到内存中。

2016-10-29 15:17:18 3154

转载 java的Observable类中,notifyObservers(Object arg)和notifyObservers()的区别

Observable中有两个重载的方法,一个是不带参数的notifyObservers(),一个是带参数的notifyObservers(Object arg)先说那个带参数的notifyObservers(Object arg):这个参数Object arg 其实就是 Observer接口中的update(Observable o, Object arg)方法中的第二个参数 其实就是

2016-10-29 13:36:06 4196

原创 LLRP基础知识介绍

LLrp是客户程序和读写器之间的通信规则,LLrp协议数据单元叫消息。消息从客户端到读写器包含得到和设置读写器配置,得到读写器性能,在读写器上管理盘存、访问操作。消息从读写器到客户端包含读写器状态,盘存和访问结果。客户端可修改读写器状态包含读写器配置参数、动态创建数据结构(Rospec、AccessSpec)、厂商定义的扩展功能。操作读写器步骤: 1. 得到读写器性能。 2. 根据性能配置读

2016-10-13 09:23:25 1614

转载 对面向接口编程的理解

面向对象设计里有一点大家已基本形成共识,就是面向接口编程,我想大多数人对这个是没有什么觉得需要怀疑的。     问题是在实际的项目开发中我们是怎么体现的呢? 难道就是每一个实现都提供一个接口就了事了?反过来说,你有时候有没有觉得接口是多余的事? 又或者,你仅仅是觉得现在类似spring这样的框架已习惯用接口这种方式而心存当然。      设计模式解析里提到了面向对象设计考虑的几个视

2016-09-29 10:57:36 402

原创 一张图说明servlet、servlet容器、web服务器、Tomcat之间的关系

servlet、servlet容器、web服务器、Tomcat之间的关系

2016-09-23 11:57:03 542

原创 linux(ubuntu) 搭建svn服务器

linux(ubuntu) 搭建svn服务器

2016-09-11 22:53:48 344

原创 RfiidEmulator运行时JVM terminated. Exit code = -1错误

今天尝试运行一个java应用软件RfiidEmulator,启动时一直提示JVM terminated. Exit code = -1错误。如下图所示:在网上查找问题原因,很多是因为环境变量JAVA_HOME设置有问题或者是内存设置大小之类的,而且都是eclipse软件启动时报的错误。自己遇到的问题,网上没找到方法。但可以肯定是java启动应用程序时,输入的args参数存在问题,而这些参数自己又

2016-09-11 20:31:48 454

转载 在RFID标准协议中 ISO18000-6B和ISO18000-6C的优点及区别

目前我们常见的超高频(UHF)RFID读写器和RFID模块有两个标准可供选择,分别是ISO18000-6B和ISO18000-6C(EPC C1G2)标准。这两个标准可以说各有优点,那么6B/6C是什么协议,他们又有哪些区别呢?  首先要了解,无线射频通讯工作频段分类有:13.56MHz,433MHz,915MHz,2.45GHz等,分别对应低频,高频,超高频,微波。而且每个频

2016-09-06 09:50:36 12512 1

转载 SVN服务器权限控制详细说明

本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义。除此之外的其他配置、安装等内容,不是本文重点,读者若有什么疑问,请参考后面“参考文献”中列出的一些文档。这里首先要注意一点,任何配置文件的有效配置行,都 **不允许存在前置空格** ,否则程序可能会出错,给你一个 ``Option expecte

2016-08-28 09:21:16 5250

原创 adduser 和 useradd的区别

添加一个用户时,开始使用useradd命令,结果添加后发现/home/目录下没有新添加的用户目录,以为是没有添加上。又尝试添加时,提示用户已经添加。查看/etc/passwd文件,发现确实已经存在和添加的用户。在网上找相关资料发现,linux有两个命令可以添加用户:adduser和useradd 两者的区别可以参考下面的文章http://blog.csdn.net/deit_aaron/artic

2016-08-22 22:15:41 698

原创 SSH的两种密钥认证方式:口令认证和密钥认证

在安装git过程中,涉及到了openSSH的相关知识,以前只知道登录时有口令验证方式,其实还有一个密钥认证方式。 SSH登录时的两种认证方式1、口令认证(密码认证)第一种级别(基于口令的安全验证),只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。2

2016-08-20 12:27:01 10138 1

原创 ubuntu搭建Git服务器,windowns建立git客户端

在ubuntu上搭建git服务器和win上建立客户端,作为研发团队的源码管理工具。

2016-08-12 22:36:25 479

原创 工作五年,随便写写

一转眼,毕业五年。作为一名程序员,自己是不合格的。

2016-08-10 09:47:53 192

转载 Android的pmem分析

pmem是android为DSP vpu gpu等设备提供的一种内存分配机制,我们都知道vpu gpu这一类设备需要大块的连续物理内存以便进行硬件解码,硬件显示加速。PMEM就像一个小型的buddy内存管理系统,独立于linux kernel内存管理模块管理,不会受到内存管理中的外碎片的影响,同时还可以灵活的提供额外功能。当然在系统运行一段时间后,PMEM也同样面临着外碎片问题,因此PMEM内

2014-10-13 15:22:58 948

<>英文版

<>这是一本非常不错的书,但是中文翻译的太烂,导致有些章节理解起来很费劲。如果看下英文版,会发现,不明白的地方看英文原版反而非常容易理解。

2018-03-29

汽车电子标识协议wireshark插件

该插件能解析汽车电子标识协议

2017-06-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除