自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叶玄青的博客

一无所知

  • 博客(157)
  • 资源 (11)
  • 收藏
  • 关注

原创 beautiful C code(updating)

记录看到过的让人眼前一亮的C代码,通常是简洁高效的一些做法移位操作在designware usb2.0 otg driver中看到u32 daint, daintmask;daint &= daintmask;daint_out = daint >> DAINT_OUTEP_SHIFT;daint_in = daint & ~(daint_out 通常我们的做法是通

2017-06-06 23:15:31 1115

原创 python搜索效率研究

天地不仁,以万物为刍狗 –老子本文来研究在python中查找元素的效率问题,实验方法如下:初始化一个大列表和字典,其中分别存放了10000000个元素。查找的元素以1000000的间隔递增,检测程序执行速度。自己实现顺序比较查找,用同样的方法进行测试,并和其他方法进行对比。一、程序实现程序实现包含上述三个查找算法,均很简单。1.1 通过item in list实现查找def find_it

2017-06-04 21:38:48 1183

原创 VIM完全配置

一、说说这个编辑器不得不说,vim是一款出色的编辑器,体现在两方面:一是轻量级跨平台的,unix服务器也好,桌面版的linux发行版也好,还是macbook,都自带vim,而且都能兼容(windows只能用gvim或者在linux模拟环境下运行vim);二是提供出色的相对灵活的编辑功能,包括自定义快捷键,定义宏,添加插件,视图模式和编辑模式分离,可运行shell命令等等。当前使用的版本为7.4.16

2017-06-04 14:32:00 1628 3

原创 PCIe资料汇总

整理PCIe相关知识及资料

2017-05-30 22:30:24 10825 1

原创 Euler Project : Problem 22

题面是这样的: Using names.txt (right click and ‘Save Link/Target As…’), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabet

2017-05-19 00:34:37 709

原创 qemu实验

.\qemu-img.exe -f qcow2 create vmdisk.img 10G .\qemu-system-x86_64.exe -hda .\vmdisk.img -cdrom .\ubuntu-14.04.2-desktop-amd64.iso -m 512M -boot d -net nic -net user

2017-05-14 17:50:08 1307

原创 基于tkinter实现编辑器

代码位于 note editor仓库。一、Feature List1、行号显示,滚动条支持。 2、自动完成Windows/Linux/Darwin系统下的字体适配,一键切换中英文自体。 3、带词法分析,可以扩展诸如语法高亮等功能。 4、打开文件、保存文件、退出程序的快捷键支持。二、Widgets List

2017-05-07 13:43:20 2163 1

原创 Tkinter Text 控件

为了搞清楚Text控件中如何使用光标位置,可以通过如下代码进行测试,python版本为2.7.13。if text.edit_modified(): print text.index(END) text.edit_modified(False)#外面套个定时器循环检测经过测试后总结如下:INSERT 当前光标位置,即插入文本的位置END 文本的末尾位置,始终表示下一行行首位

2017-04-26 00:06:52 1629

原创 gcc跨平台编译

在OSX下编译报找不到malloc.h,经过查询是头文件位置不兼容,于是搜索资料,看如何通过宏来兼容不同平台。在OSX下可以通过 gcc -arch i386 -dM -E - < /dev/null | sort 查看gcc定义的预编译宏。可以添加如下代码进行兼容#ifdef _WIN32 //define something for Windows (32-bit and 64-bit,

2017-04-23 01:25:55 2974

原创 usb3.0开发指南:验证过程总结

自由固不是钱所能买到的,但能够为钱而卖掉。 —— 鲁迅usb mass storage设备能顺利读写了,这样的话,对于ip来讲,从链路层到协议层起码是能正常工作的了。关于后面文章的安排:阶段性工作总结的文章就不写了,后面可能针对某些技术点重点罗嗦几句。一、mass storage设备读写支持代码下载,驱动还是参考自uboot,通过msg_write和msg_read接口对设备进行读写,都能正常工作

2017-04-17 23:28:44 8214 1

原创 usb3.0开发指南:bulk传输验证

menu {:toc} 伟大的成绩和辛勤劳动是成正比例的,有一分劳动就有一分收获,日积月累,从少到多,奇迹就可以创造出来。 —— 鲁迅鲁迅先生的这句话真是鼓舞码农的心啊,一分劳动一分收获。昨天困扰了一天的问题,今天起床的时候突然想到,然后一试,竟然通了。一、进度审查解决了无法获取描述符data的问题。添加mass storage设备驱动,编译通过,代码仓库在这里从验证的角度讲,只要通过读

2017-04-14 18:55:21 2281

原创 usb3.0开发指南:验证过程调试

其实地上本没有路,走的人多了,也便成了路。 –鲁迅一、工作进展自从前几天dwc3 day3–platform,转眼一个星期了。上周六(8号)在验证环境下实验,发现一直不能检测到port connect信号。这周一(10号)检查了一天没发现什么问题,周二早上终于发现了,原来是phycfg寄存器的suspend位置1了。周三上午set address和get device descriptor的set

2017-04-13 22:39:40 4320 1

原创 usb3.0开发指南:验证软件框架

浪费时间是一桩大罪过。 —— 卢梭这篇文章介绍如何将dwc3验证套件应用到自己的平台上,基本上算是使用手册吧。一、构建usb验证项目把整个dwc3_portable项目拷贝到自己的验证环境中,在自己的Makefile中指定编译目标,比如DWC3_DIR := dwc3_portableDWC3_SRC += $(DWC3_DIR)/usb.c \ $(DWC3_DIR)/host/xhc

2017-04-06 23:00:23 4271 1

原创 usb3.0开发指南:host环境验证

人生得一知己足矣,斯世当以同怀视之。 —— 鲁迅人生得一知己足以,斯世当以同怀视之。人生本来就很短暂,能得一知己又是多么的幸运。 今天又花了将近一天时间,整理dwc3 usb验证套件,主体部分已经完成的差不多了,代码依旧在我的dwc3仓库中。这篇文章记录今天的工作内容,其实就是主体内容。一、第二天进展第一天完成了初始化流程,然后建了个Makefile工程进行统一管理。第二天完成以下几个部分:u

2017-04-05 21:42:40 4517 2

原创 usb3.0开发指南:7天完成usb3.0控制器验证

思想像胡须,不成熟就不可能长出来。 —— 伏尔泰胡须能作为身体成熟的标志,那么什么又能体现思想成熟呢?一、写在前面当前SoC的设计很多工作都在于ip的集成,所以为了保证ip的可靠性,需要对ip进行验证。通常ip供应商会提供软硬件验证环境,但是这个情况也是不一定的。那么在没有软件验证环境的时候怎么办?一个比较可行的方法是:参考Linux内核,如果有对应驱动的话,可以拿来做测试。对的,这个主题就是关于

2017-04-04 10:49:05 5649 3

原创 Linux内核移植 part2:uboot lcd驱动

人们手里的金钱是保持自由的一种工具。 —— 卢梭对于卢梭的这句话,不能同意更多啊。这次驱动一块显示屏,历时两天时间,也许是感到倦了,这篇移植文档就当终结吧。关于Linux下的framebuffer驱动就不移植了,在已有的框架下,把配置好的参数添加进去即可。一 硬件介绍显示屏为tsc2007,带电阻式触摸。平台依旧是Exynos4412。废话不多说,直接来看怎么驱动吧。二 设备树配置我的设备树文件是

2017-03-10 23:35:18 3351

原创 Linux内核移植 part3:sdmmc驱动

一种纯粹靠读书学来的真理,与我们的关系,就像假肢、假牙、蜡鼻子甚或人工植皮。而由独立思考获得的真理就如我们天生的四肢:只有它们才属于我们。 —— 叔本华读书的价值在于认识你自己,而不是用填鸭式的知识来武装自己。今天的主题是sd卡驱动。分为故事描述和总结两部分,第一部分是发现问题到解决问题的过程,第二部分是总结,不想知道过程的可以直接跳到总结。一 故事是这样的自从更新博客以来,有不少童鞋通过qq,邮

2017-03-06 15:23:42 3284 1

原创 Linux内核移植 part3:usb host驱动

初期教育应是一种娱乐,这样才更容易发现一个人天生的爱好。 —— 柏拉图深深赞同柏拉图的这个观点,人是有天性的,教育无非就是如何引导天性朝有利的方向发展。继续Linux内核移植系列,今天介绍如何移植Exynos4412 usb驱动,采用的平台依旧是itop Exynos4412精英板。协议的知识就不介绍了,直接来移植一个可以使用的usb host驱动。一 硬件配置1.1 外部管脚首先usb host

2017-03-06 14:53:17 2283

原创 Linux内核移植 part3:pinctrl和gpio驱动

世上最快乐的事,莫过于为理想而奋斗。 —— 苏格拉底谨以这句格言送给自己和所有在路上的朋友。exynos 4412平台有很多模块穿插了gpio的控制,譬如usb phy需要gpio来控制提供bus,sdmmc的所有管脚都和gpio复用。这篇文章就介绍一下Linux 4.1版本内核是如何配置gpio的。一 设备树和平台编码的配合设备树负责组织gpio,但是关于每个bank有多少个gpio口,每个口的

2017-03-06 00:15:38 2678

原创 评日报文章:关于华为裁员

今天看了一篇日报:CSDN日报20170304——《令人比较失落的IT圈子-关于华为裁员》看了前半部分,就没有往下看了。讲的有所道理,但是总觉得文字中似乎有种怨念,不够通透,明亮。就说一个我比较关心的观点吧:IT门槛低,不如物理,化学,生物制药这类学科。部分承认,但是综合考虑社会发展状况,这是很容易看明白的一个现象,文章前半部分都已经说了,和国家大力扩招,培养发展计算机产业是有很大关系的。社会发展到

2017-03-05 15:07:53 1731 2

原创 Linux内核移植 part4:再论设备树

惟有对自己卓越的才能和独特的价值有着坚定不移之确信的人才能称之为“骄傲”。任何想假装高傲的人不一定就能骄傲,他多半会像其他人一样,很快地丢弃掉这个假装的个性。 —— 叔本华之前在移植uboot和Linux内核的时候已经探讨过一部分device tree的内容了,特别是介绍了uboot中设备树结构在内存中的组织形式。但是一直都没有较为系统的总结一下Linux设备树的内容。希望这篇文章对Linux中的

2017-03-04 14:22:09 917

原创 Django搭建网站:安装和测试

社会上崇敬名人,于是以为名人的话就是名言,却忘记了他所以得名是那一种学问和事业。 —— 鲁迅有很多知名的网站是利用python搭建的,例如豆瓣,知乎,YouTube。本文对Django进行初步常识,看看如何利用这个现成的框架来快速搭建一个网站。1. 安装Django在Ubuntu 16.04下,直接host > pip install Django就安装好了,例如我的是Django-1.10.6。

2017-03-03 15:50:58 1592

原创 Linux内核移植 part1:eMMC启动

时间,就象海棉里的水,只要愿挤,总还是有的。 —— 鲁迅从建立博客到现在陆陆续续有好几个童鞋来找我要代码,其中有个问题经常提到:支不支持从emmc启动。但是我移植uboot和kernel只是为了探究我自己感兴趣的东东,所以没有去关注emmc启动的问题。最近工作正好告一段落,就来看看eMMC boot的问题吧。uboot eMMC驱动框架简介检查了uboot的代码,发现在2015.04版本中是通过一

2017-03-02 21:40:23 10662

原创 Linux内核移植 part3:eMMC驱动

单个的人是软弱无力的,就像漂流的鲁滨孙一样,只有同别人在一起,他才能完成许多事业。 —— 叔本华内核版本:4.1 硬件平台:迅为exynos 4412开发板移植eMMC驱动很快就结束了,从exynos4412-trats2.dts中拷贝配置,直接就能工作(删除vmmc-supply属性)。mmc@12550000 { num-slots = <1>; broken

2017-03-01 10:15:42 3614 1

原创 Linux内核移植 part3:串口驱动

每日一乐:小美在作文簿里写上长大后的愿望:一、我希望能有一个可爱的孩子;二、我还希望能有一个爱我的丈夫。结果,发现老师写了一句评语:“请注意先后顺序。”介绍Linux kernel 4.1对exynos 4412串口的支持。 其实这部分工作已经过去很久了,因为以后的重心不在这方面了,今天为了帮一个童鞋解决个问题,正好又看到这个,索性就写篇文章记录一下吧,说不定哪天有人因为看到了这篇文章,能够在工

2017-02-28 22:23:10 2606

翻译 python解释器实现及其嵌入式应用:Let's Build a Simple Interpreter(part12)

英文原文 不要担心走得缓慢;害怕原地不动! - 中国谚语(我表示怀疑!!!)大家好,欢迎回来!今天我们将要走几小步来学习如何识别Pascal过程声明。什么是过程声明?一个过程声明是一个语言结构,它定义了一个标记符,以及一个关联的Pascal代码块。在我们深入讨论之前,说几句关于Pascal过程以及他们的声明:Pascal过程没有返回语句,在到达程序块末尾的时候退出。Pascal过程可以相互

2017-02-20 23:04:07 1026

原创 python解释器实现及其嵌入式应用:7到11章总结

从第7章开始引入了抽象语法树,第8章通过扩展抽象语法树引入了单元运算符’+/-‘。第9章扩展pascal语法支持,扩展方法和第8章是一样的,支持begin/end语句,赋值语句,引入全局符号表,存储变量内容。第10章也是语法扩展,支持更多的语法(pragram,var,代码注释)能够识别pascal程序模式,可以算是一个初具功能的解释器了。第11章介绍引入符号表,基于符号表实现语法检查(变量声明,类

2017-02-20 15:16:34 750

原创 python解释器实现及其嵌入式应用:实现语法支持

第九部分开始了对语言特性的支持,根据语言定义BNF:program→compound_statement DOT program\to compound\_statement\ DOT compound_statement→BEGIN statement_list END compound\_statement\to BEGIN\ statement\_list\ END statement_

2017-02-20 15:14:11 1001

原创 python解释器实现及其嵌入式应用:1到6章总结

通过1到6部分的学习,实现了一个能进行四则运算,具有优先级,支持括号的计算器。能够满足一般计 算需求的计算器。内容概要巴科斯范式表示grammar。基本知识,以及如何将优先级信息以BNF形式表示。syntax diagram 展示识别流程。等效于BNF,BNF可以理解成文本化的syntax diagram。BNF到python代码的转换体会这六部分内容比较简单,基本上前一部分的练习做完后,

2017-02-20 15:06:35 1579

原创 python解释器实现以及嵌入式应用:符号表以及语法检查

本章实现了独立的符号表,实现了赋值语句语法检查。谈谈first集和follow集几乎任何一本关于编译器设计的书在讲到语法分析的时候都会介绍first集合和follow集合,故名思议,first集合就是通过向前读取一个标识符,判断这个标识符是否且仅是某一产生式右侧符号的第一个标识符,如果是的话,就可以推断要应用该条规则进行推导。follow集指当前标识符是否是某一条规则的后面一个符号,对于LL(1)来

2017-02-20 14:54:57 1946

原创 python __str__和format方法

介绍__str__和format方法。1. str__str__ 被print函数调用。如果不是要用str()函数转换,当打印一个类的时候,print调用的就是类里面的定义的__str__class Token(object): def __init__(self, type, value): self.type = type self.value = val

2017-02-20 12:16:23 1159

原创 Linux桌面系统各种字体配置

各种Linux工具的字体配置。 为什么我会挑剔字体呢?为什么我会挑剔字体呢?为什么我会挑剔字体呢?安装需要的字体Monacohost > cd /usr/share/fonts/truetype/host > cd ttf-monaco/host > sudo wget http://www.gringod.com/wp-upload/software/Fonts/Monaco_Linux

2017-02-17 21:30:33 1523

原创 git commit中文乱码解决

$ git config –global core.quotepath false或者手动更改配置文件~/.gitconfig,编辑添加如下内容即可:[core] quotepath = false

2017-02-15 21:02:51 16599 2

原创 python解释器实现及其嵌入式应用:抽象语法树

英文原文地址第七部分开始引入了抽象语法树,开始考虑到代码的耦合性。剥离了lexer,parser和interpreter。值得一提的是,上一篇随笔提到的右括号匹配问题在这里解决了,也是通过添加额外代码解决的。def parse(self): node = self.expr() if self.current_token.type != EOF: self.error

2017-02-15 16:57:33 1491

原创 python解释器实现及其嵌入式应用:一个四则运算计算器的实现

这是《Let’s build a simple interpreter》中第四部分的练习原文参考一 BNFexpr→term((PLUS/MINUS)term)∗ expr\to term((PLUS/MINUS)term)* term→factor((MUL/DIV)factor)∗ term\to factor((MUL/DIV)factor)* factor→INTERGER factor\t

2017-02-13 12:50:52 2690

原创 修改Linux IO调度器

Linux系统默认提供了三种IO调度方式noopdeadlinecfq原来系统中默认的调度方式是deadline,下面介绍如何更改默认调度机制。一次性更改通过host > cat /sys/block/sdb/queue/scheduler #sdb是我的系统安装磁盘noop [deadline] cfqhost >可以看到默认的调度方式是deadline。host # echo cfq

2017-02-07 21:42:37 5390 1

转载 如何思考未来

当我还是一个孩子的时候,我想当然地认为,每一年都会越来越好 — 电视越来越大,越来越薄,汽车越来越快,电脑以指数的速度变得更为强大。但是作为一个成年人,我意识到没有谁能保证未来一定会更好。相反,默认的情况下,事情会保持不变(甚至变得更糟,因为我们不断制造新的麻烦,偶尔还爆发战争)。那么,这个世界还会好吗?事实上,只有当对未来报有强烈愿景和坚定信念的人努力使它更好,答案才是肯定的。人是很容易陷入职业生

2017-01-22 11:10:38 1208

原创 python解释器实现及其嵌入式应用:内部模块定义及扩展

本文介绍mp内部模块的实现,如何自定义内部模块,面向读者:对python编译器内部实现有兴趣。要求:只需具有python应用经验即可。 发表于 Micropython开发:内部模块定义及扩展Micropython需要支持导入模块,同时,设备驱动也要能够以python模块的形式工作,那么在python解释中必须实现这种接口。外部模块的定义位于$(tree)/extm

2017-01-17 14:33:06 2781 2

原创 神经网络与深度学习(一)

注:原文发表于 http://abcamus.cc/2017/01/14/神经网络与深度学习笔记(一)/这周开始考虑在基于MP实现一些特定应用的时候,其实我心中是有几个雏形的,但是涉及到技术细节的时候,还是有些缺乏,所以就想找本书能提供些参考。巧合的是,发现了这本《神经网络与深度学习》,正好也是基于python的,有用武之地。第一章阅读总结本章通过神经网络来识别手写数字,在这一章中涉及到以下几个重

2017-01-15 00:08:12 988

原创 python解释器实现及其嵌入式应用:解释器移植

一 概述1-1 知识储备1-2 成果展示二 移植过程2-1 代码选型2-2 启动代码实现2-3 指令集兼容4 修改内存分布5 交互界面三 总结与展望一 概述micropython:介绍与编译 一文介绍了Micropython的语法特点,当前的应用平台以及在linux下的试用。这篇文章接着介绍如何将Micropython编译器移植到exynos 4412平台下,让他工作起来。1-1

2017-01-12 16:01:34 6175 1

FreeRTOS-v9.0.0源代码

同步官网的FreeRTOS-v9.0.0源码

2017-08-18

根文件系统

一份基于busybox制作的根文件系统

2017-05-16

C语言的文法定义

2017-05-15

C语言文法定义

2017-05-15

motion detection课件

一份不错的运动侦测的讲义

2016-10-31

Blooth Low Energy Specification

低功耗蓝牙官方规格书

2016-07-05

usb ehci 接口规范

usb2.0 的接口规范,2.0标准的usb控制器接口

2016-05-01

usb 驱动程序编写

介绍linux内核下usb驱动开发

2016-05-01

usb大全第四版

usb大全英文版第四版

2016-05-01

usb2.0协议

usb2.0 的官方文档

2016-05-01

空空如也

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

TA关注的人

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