Rickey

一无所知

排序:
默认
按更新时间
按访问量

Rust JNI原理

rjni Download and build Rust Library git clone https://github.com/benanders/rjni.git cd rjni; cargo build add examples into Cargo.toml [[...

2018-07-22 22:19:44

阅读数:1

评论数:0

PCIe实践之路:PCIe转USB Host驱动

大话PCIe:调试实战 本次调试PCIe RC驱动,通过PCIe转USB芯片扩展出的USB口接入U盘。RC平台为ARM-A7,运行裸机环境,EP为一款PCIe转USB3.0芯片,提供PCIe gen2 1X物理接口,接到4X插槽上。 一、芯片选型 PCIe转USB3.0芯片为vl805,...

2018-05-18 23:26:22

阅读数:183

评论数:0

Haskell Monad (上)

函数式编程中的单子(Monad) 说到pure functional programming,实在是绕不过去Monad的。 pure function的特点 往往用函数式编程的思路写了几个程序之后就会遇到一个问题:针对具有状态更新的程序,似乎总是不太好处理。由于语言的纯粹性,相同的输入总...

2018-05-04 09:12:25

阅读数:66

评论数:0

复用 = 高阶函数和多态

高阶函数假设现在有一个计算销售额的函数,输入年份n,返回该年的销售额。sales :: num -> num我们可以这样定义一个计算总销售额的函数totalSales :: num -> numtotalSales 0 = 0totalSales n =...

2018-03-26 23:45:24

阅读数:93

评论数:0

图灵机与编程语言

年前看了一本科普书籍–《人工智能简史》,作者尼克,早年任职哈佛和惠普,后投资创业。 这本书描述了两大人工智能的发展方向,一派主张拟生物大脑(譬如人工神经网络),另一派则主张用逻辑和符号系统(譬如自动定理证明)。真正伟大的飞跃以1937年图灵关于可计算数的开创性论文开始,奠定了计算机发展的基础。 ...

2018-03-08 10:40:33

阅读数:177

评论数:0

工作中的二三事

最近不知怎么搞的,老是容易累,也许是近期刚从普吉岛回来有关,身体还没完全适应上海的下雪天,又或许是对最近的生活不甚满意,我不知道。 以至于胡思乱想的突然又有了要写点什么东西的感觉,人啊,就是矫情。 关于工作质量 工作质量如何评估呢?这个恐怕要因工作而异了吧。做软件的都知道,软件开发最重要的一...

2018-01-29 23:24:00

阅读数:149

评论数:4

Haskell Lesson:a tokenizer

一、关于pure和impure Haskell作为一门纯函数式语言,副作用剥离是它的一大特色,基本上较为严格的遵循数学函数的形式。但是也带来了一些问题,譬如在实现一个文本编辑器的时候,需要把token记录下来,这个问题在C语言中很容易解决,搞个静态的变量即可,但是在Haskell中就没有那么容易...

2018-01-28 17:33:32

阅读数:188

评论数:0

Haskell Lesson:一些数学知识

补充一些数学知识一、幺半群(monoids)1.1 定义一种元素构成幺半群只需满足两个条件:能找到一个满足结合律的二元操作符,称之为(*),使得表达式a * (b * c) = (a * b) * c。存在一个单位元素,称为e,满足群的任意元素有:a * e = a且e * a = a操作*和单位...

2018-01-15 22:24:57

阅读数:141

评论数:0

记于2018年元旦后

转眼2017年已经过去了,又到了年终总结的时刻,回顾这一年,似乎很忙碌,但是却没有换来内心真正的充实的感觉。 生活 生活上很满足,安了个家,有了一个欢乐的媳妇,我俩的点点滴滴贯穿着整个2017。家里的事情基本都是由她负责,包括装修,买家具电器,日常生活用品。偶尔在家里做个饭,虽然不经常,但是每...

2018-01-06 00:47:00

阅读数:187

评论数:0

Haskell Lesson:高阶函数

微信公众号:牛顿一号 欢迎关注我,一起学习,一起进步! 前面在实现Graham扫描和Huffman编码的时候其实已经用到了高阶函数的知识。所谓高阶函数就是参数中带有函数,譬如 f2(x)f^2(x)。通过高阶函数可以进一步对运算过程进行抽象。一、foldl/foldr/map这几个函数提供...

2017-12-24 21:39:05

阅读数:160

评论数:0

Haskll Lesson:Huffman编码实现文本压缩

Haskell实战演练:实现哈夫曼编码一、Huffman编码理论学习资料https://web.stanford.edu/class/archive/cs/cs106b/cs106b.1126/handouts/220%20Huffman%20Encoding.pdf基本内容概述:huffman编...

2017-12-10 00:57:26

阅读数:353

评论数:0

Haskell lesson:类型系统解读

最近忙成狗了,吭哧吭哧终于把家搬完了,以后就长久的住在新家了,由于刚搬家,网线还没有接,又过了一个星期家里没网的日子。这一段时间又没时间好好整理haskell。甚是遗憾。从上次haskell实现Graham扫描算法到现在已经三周有余,这次分析一下haskell类型系统。首先回忆一下C语言是怎么构造...

2017-11-14 21:36:54

阅读数:461

评论数:0

Haskell lesson:实现Graham扫描算法

getMinDot :: (Num a, Ord a) => [(a,a)] -> (a,a) getMinDot ((x,y):pairs) = if pairs == [] then (x,y) else if or [yand [y==snd (getMinDot p...

2017-10-18 13:41:46

阅读数:3199

评论数:5

PCIe实践之路:Linux RC驱动

最新的4.12内核中对pci host driver进行一些划分,把基于designware IP的主控驱动放到drivers/pci/dwc目录下去了。如果是基于老的kernel开发,想要移植新版的内核的话,要注意,同时多了designware ep驱动框架。非designware的主控驱动还是...

2017-09-17 13:42:23

阅读数:1410

评论数:0

PCIe实践之路:Linux访问PCIe空间

Linux在枚举PCIe设备的过程由内核中的PCI框架负责,在EP配置完成之后,驱动通过以下接口访问PCIe空间,原理参考前文《大话PCIe:设备枚举》一、访问配置空间相关接口位于drivers/pci/access.c1.1 读配置空间 pci_read_config_byte(const st...

2017-09-03 20:32:16

阅读数:2449

评论数:0

游黄山、宏村记

五岳归来不看山,黄山归来不看岳 从八月份开始工作事情特别多,忙忙碌碌的,但是细细一想,其实也没有做什么特别重要的事情,正好女朋友公司组织出游,也把我带上了,就出去好好放松放松吧。黄山是我一直以来都特别想去的地方,美景特别多:迎客松、云海等等。而且我又对爬山情有独钟,虽然每次爬完身体很累,但是能换来...

2017-08-27 23:49:35

阅读数:1793

评论数:6

FreeRTOS任务调度研究

这篇文章不介绍FreeRTOS移植,只是最近针对多核ARM Cortex系列平台做了移植后的一篇总结研究文章。所以不涉及对FreeRTOS整体的介绍,而只是分析任务调度这一块的机制。对应的Demo参考自CORTEX_A9_Zynq_ZC702。 一、触发任务调度的两种机制 taskYIELD...

2017-08-17 22:51:32

阅读数:1551

评论数:0

PCIe实践之路:DMA机制

PCIe控制器也提供DMA(Direct Memory access)功能,用来批量地异步数据传输。 一、PCIe中的DMA读和写 假设现在

2017-07-28 20:47:05

阅读数:5870

评论数:0

PCIe实践之路:设备枚举

人的一生是一个不断认识自我,发展自我的过程。 认识PCIe设备的枚举过程需要以下知识: 拓扑结构 设备的表征及配置空间的访问 BAR空间的含义和访问 其中第1/2点在总线结构与配置空间已经介绍过了,第3点在BAR空间和TLP也已经进行过详细的介绍,可以说是万事具备。接下来涉及的过程有以下几个: 根...

2017-07-08 22:46:17

阅读数:2865

评论数:6

PCIe实践之路:BAR空间和TLP

上一篇文章中写到每个PCIe的function都有自己的configuration space,其实就是配置寄存器了(这个当然是要有的了,不然软件要怎么玩?只不过PCIe的配置寄存器要通过tlp才能去访问)。其实PCIe设备是有自己独立的一套内部空间,不仅仅是配置空间,包括每个设备提供哪些I/O地...

2017-07-02 20:28:40

阅读数:4382

评论数:0

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