自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ascend的专栏

纸上得来终觉浅,绝知此事要躬行

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

转载 OpenRisc-14-or1200第一个裸机程序

经过前面千辛万苦、爬山涉水、纠结了好久才弄好的环境,现在我们终于可以把FPGA当成个单片机使了,稍微比单片机猛一点,但是绝对比单片机贵一个数量级,FPGA现在能完成由CPU做的事,我们就把它当成一个大价钱买回来的单片机,不过相比于S3C24XX的片子来说,那么贵的一个FPGA板卡跑40M的一个CPU绝对的奢侈,不过仅限于理解和学习嵌入式的过程,管他的。        但是如果是这样呢,把o

2013-12-08 01:36:25 1624

转载 OpenRisc-13-or1200硬件环境搭建

硬件环境需要我们自己手动将系统需要的外设添加到软核上,那么首先搭一个最简单的SOC,想想我们需要点什么?        软核or1200不用说了,上了CPU必须是要跑程序的,RAM是必须的,要下载程序代码,下载器是必须的,要偷窥下程序运行信息,上个串口可以吧,CPU和外设之前要使用一种互联结构,总结一下就是:CPU、RAM、UART,BUS......        那骚年们,去o

2013-12-08 01:34:13 1127

转载 OpenRisc-12-or1200软件环境搭建

引言之前我也写了一个相关的blog,今天看到这篇,感觉也挺好的,故转载如下:本实验所有的RTL以及软件代码下载地址: http://download.csdn.net/detail/rill_zhen/6647119去年7月份毕业从桂林来到广州这边工作后,唏嘘万分,由于小弟我在学校是专业打酱油的料,所以来到公司后一直没有机会做些酱油级别以上的事情,所以平

2013-12-08 01:33:04 2517

转载 OpenRisc-11-编写ipcore 的linux driver,然后run helloworld

引言我觉得ORPSoC的关键在于‘P’,即programmable。SoC的有优势就在于只要是满足总线interface的ip,可以实现plug & work。所以一旦完成前面的工作之后,添加属于自己的ip core到ORPSoC的wishbone总线上,并编写它对应的驱动就成为非常关键的一步。本小节就做一个简单的例子,来说明需要完成的工作步骤及其中遇到的问题和对应的解决方

2013-12-08 01:32:19 659

转载 OpenRisc-10-基于or1200最小sopc系统搭建(四)--(sram,ssram)

最近在弄openrisc,之前有人在弄,并且写了一篇master thesis,我已经上传了:http://download.csdn.net/detail/rill_zhen/5303401下面的内容应该就是根据论文中的指导完成的,但是,不是我完成的,所以转载如下:  Ø  DE2-115和DE2-70的存储器配置DE2-115相对于DE2-70在

2013-12-08 01:31:19 1255

转载 OpenRisc-9-基于or1200最小sopc系统搭建(三)--串口

最近在弄openrisc,之前有人在弄,并且写了一篇master thesis,我已经上传了:http://download.csdn.net/detail/rill_zhen/5303401下面的内容应该就是根据论文中的指导完成的,但是,不是我完成的,所以转载如下:    接上一篇(原创)基于or1200最小sopc系统搭建(二)--QuartuII工程及DE2平台下

2013-12-08 01:30:04 1014

转载 OpenRisc-8-基于or1200最小sopc系统搭建(二)--QuartuII工程及DE2平台下载

最近在弄openrisc,之前有人在弄,并且写了一篇master thesis,我已经上传了:http://download.csdn.net/detail/rill_zhen/5303401下面的内容应该就是根据论文中的指导完成的,但是,不是我完成的,所以转载如下:  接上一篇(原创)基于or1200最小sopc系统搭建(一)--搭建及仿真(DE2,D

2013-12-08 01:29:03 991

转载 OpenRisc-7-基于or1200最小sopc系统搭建(一)--搭建及仿真(DE2,DE2-70)

最近在弄openrisc,之前有人在弄,并且写了一篇master thesis,我已经上传了:http://download.csdn.net/detail/rill_zhen/5303401下面的内容应该就是根据论文中的指导完成的,但是,不是我完成的,所以转载如下: 做一个or1200的最小系统,or1200+wishbone+ram+gpio,在DE2平台上实现

2013-12-08 01:25:48 1467

转载 OpenRisc-6-wishbone实验

引言 学习和研究OR,wishbone是绕不开的问题。本小节就做一个简单的实验,进一步加深对wishbone总线的理解。 6.1 总线timing请参考官方spec,链接如下:http://opencores.org/opencores,wishbone附:http://blog.csdn.net/column/details/ce123-w

2013-12-08 01:22:08 738

转载 OpenRisc-5-用quartus对ORSoC的RTL进行综合

引言书上学来终觉浅,绝知此事要躬行。前面几小节的内容都是基于现成的东西展开的,用的是现成的综合好的svf文件,ormon也是事先编译好的,linux也是移植好的,这些都是opencores给咱们弄好的。当然,也不是说用现成的没有意义,意义是很大的,即有了一个直观的,直接的感受。如果想要进一步研究,就需要自己动手修改代码了,在修改之前,有一个环节需要做,就是先把现成的变成自己的,即要能把现有

2013-12-08 01:21:00 836

转载 OpenRisc-4-ORSoC跑linux实验

引言光说不练假把式,本小节就用官方的FPGA开发板跑一下linux。 4.1,  实验准备1》  orsoc的工具链环境(gcc,gdb,jtag),搭建过程见上一篇blog:http://blog.csdn.net/rill_zhen/article/details/84438822》  ep4ce22的FPGA开发板(€:149)3》  

2013-12-08 01:20:21 1255

转载 OpenRisc-3-SOC develop environment build and test

引言openrisc是开源computer architecture中推广的比较好的。工具也比较齐全,比如,compiler,debugger,architecture simulator,rtl simulator。。。这些tool都有,并且都是opensource的,有极大的灵活性。学习一种技术最好的方式就是使用它,修改它。(the best way to learn and

2013-12-08 01:18:58 1004

转载 OpenRisc-2-C to Verilog

引言如何将C语言代码转换成verilog HDL或者VHDL呢? 2.1 在线转换:http://c-to-verilog.com/online.htmlC-to-Verilog.com是海法(Haifa)大学高层次综合领域的一个学术研究而产生的一个网站。这个网站所用的编译器是SystemRacer综合系统的一个修改版本。这个编译器的源码可用于研究目的,并且

2013-12-08 01:17:17 842

转载 OpenRisc-1-startup

引言计算机体系结构的研究和学习中,理论是一方面,这方面有很多很优秀的教材,比如J&P的两本经典,国内也有很多关于体系结构的书籍可供参考。此外,理论联系实际也是不可或缺的,但是关于实用CPU的具体实现的源码分析方面的书籍就寥寥无几了。这可能跟从事这方面的研发人员的数量有限有关。参与的人少,又加剧了参考资料的稀疏,形成了一个不好的循环。这使我想起了linux kernel的研究

2013-12-08 01:15:35 637

原创 initramfs 文件系统 no init found 问题解决思路

系统启动时总是提示Kernel panic - not syncing: No init found.的问题很让人头疼,goole,baidu都无济于事。技术的问题总会有突破口,这就需要静下心来仔细分析一下。          出现上述问题提示的原函数在init/main.c 里面的  init_post 函数里。     本文介绍的init  not found 是因为init软链接

2013-12-05 10:22:42 4816

转载 linux内存寻址---物理地址、线性地址、虚拟地址。逻辑地址(二)

CPU将一个虚拟内存空间中的地址转换为物理地址,需要进行两步(如下图):首先,将给定一个逻辑地址(其实是段内偏移量,这个一定要理解!!!),CPU要利用其段式内存管理单元,先将为个逻辑地址转换成一个线程地址,其次,再利用其页式内存管理单元,转换为最终物理地址。      这样做两次转换,的确是非常麻烦而且没有必要的,因为直接可以把线性地址抽像给进程。之所

2013-11-27 01:07:15 735

转载 linux内存寻址---虚拟地址、逻辑地址、线性地址、物理地址(一)

不同的经典书籍中都定义了关于linux内存虚拟地址的几个名词的定义:一般讲地址分为三类: 逻辑地址、物理地址、线性地址  首先说一句话:linux关于内存寻址可以分为几个阶段,首先由分段机制,然后有分页机制。分页机制在段机制之后进行,以完成线性—物理地址的转换过程。段机制把逻辑地址转换为线性址页机制进一步把该线性地址再转换为物理地址程序(进程)的虚拟

2013-11-27 01:06:23 905

转载 Linux字符设备驱动设计知识点

一、设备号设备号又分为:主设备号和次设备号。“主设备号” 用来标示“设备文件”与哪个驱动程序相对应。“次设备号”被驱动程序使用,用来辨别操作的是哪个设备。小结:主设备号用来辨别设备类型,次设备号用来辨别同一类型设备中的具体哪台设备。 1、内核中如何描述设备号?答:用一个 dev_t 类型的变量来描述;其实质为一个 unsigned int 3

2013-11-25 10:11:19 811

转载 Linux中的虚拟地址、物理地址和内存管理方式

Linux中的虚拟地址、物理地址和内存管理方式(一)一、简单介绍下早期的内存实现:(可略过)        1、在早期的计算机中,运行一个程序的特点是:            (1)会把这些程序全都装入内存,            (2)程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。        2、在早起的内存实现方

2013-11-25 09:15:23 2591

转载 GNU C的扩展

Author:tiger-johnTime:2013-08-3(重新修改)mail:jibo.tiger@gmail.comBlog:http://blog.csdn.net/tigerjb/article/details/8299557转载请注明出处!一.  结构体赋值:1、对成员赋值例如结构体[cpp] view plainc

2013-11-25 01:29:35 798

转载 offset宏的讲解

1.offset宏讲解#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)对这个宏的讲解我们大致可以分为以下4步进行讲解:1>( (TYPE *)0 )  0地址强制 "转换" 为 TYPE结构类型的指针;2>((TYPE *)0)->MEMBER   访问TYPE结构中的MEMBER数据成员;

2013-11-25 01:27:31 671

转载 container_of分析

1.container_of宏1> Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口:container_of(ptr, type, member)  ptr:表示结构体中member的地址 type:表示结构体类型 membe

2013-11-25 01:23:39 566

转载 Linux字符设备驱动之register_chrdev_region()系列

1.内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个char_device_struct 结构,它的定义如下:static struct char_device_struct {struct char_device_struct *next; // 指向散列冲突链表中的下一个元素的指针unsigned int major;

2013-11-25 01:01:37 683

转载 Linux内核访问I/O资源的方法:动态映射(ioremap)和静态映射(map_desc)

内核访问外设I/O资源的方式 我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。  Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc)。  一、动态映射(ioremap)方式  动态映射方式是

2013-11-25 00:51:24 1319

转载 ioremap和ioport_map

一.基础介绍IO寄存器(内存)有两种地址映射方式,即映射到IO地址空间(portio),映射到内存地址空间(mmio)。在linux-2.6之前,前者使用inb/outb(......)访问,后者通过readb/writeb(......)来访问(访问前必须使用ioremap将IO物理地址映射到虚拟地址)。ioremap函数作用如前所述,就是将IO物理地址映射成虚拟地址,这样r

2013-11-25 00:19:51 2265

转载 container_of 理解

问题:如何通过结构中的某个变量获取结构本身的指针???关于container_of见kernel.h中:/*** container_of - cast a member of a structure out to the containing structure* @ptr:     the pointer to the member.* @type:     the t

2013-11-24 16:25:07 523

转载 字符设备驱动内核框架小结

最近一直在学习驱动相关知识,但是如果说会用或者简单的会写的话我还不是很满足,我还是想知道它底层是如何实现的。那闲话少说,最近也看了很多大牛的经验总结,然后也就谈谈自己的看法吧~首先还是先列个大纲:1、VFS如何实现;2、字符设备驱动框架;一、VFS(虚拟文件系统)在学习这方面的知识之前先介绍下几个关键的结构体,inode、

2013-11-24 01:36:24 827

转载 struct file 和struct inode

内核使用三种数据结构表示打开的文件:(1)每个进程在进程表中都有一个记录项,记录项包含一张打开的文件描述符表,可将视为矢量,每个描述符占用一项,与每个文件描述符相关联的是:a)文件描述符标志(close_on_exec).b))指向一个文件表项的指针。(2)内核为所用打开文件维持一张文件表,每个文件表项包含:a)文件状态标志(读写等等)b)当前文件偏

2013-11-24 01:26:04 724

转载 Linux启动流程简介

一. 内核镜像Izmage被bootloader装载到内存中。zImage的入口代码是自引导程序。包含一些初始化代码。第一条指令在head.S文件中。解压内核,然后调用call_kernel启动vmlinux(解压后在正确位置上的内核)二. vmlinux开始部分的代码对应的文件也叫head.S.这个是体系结构相关的代码,进行页表的初级初始化后打开MMU,跳转到start_kernel函数中去

2013-11-23 23:51:25 565

转载 linux platform 驱动模型分析

一. 概述    platform设备和驱动与linux设备模型密切相关。platform在linux设备模型中,其实就是一种虚拟总线没有对应的硬件结构。它的主要作用就是管理系统的外设资源,比如io内存,中断信号线。现在大多数处理器芯片都是soc,如s3c2440,它包括处理器内核(arm920t)和系统的外设(lcd接口,nandflash接口等)。linux在引入了platform机制之后

2013-11-23 22:28:00 535

转载 Linux驱动中的platform

作者:李智敏,华清远见嵌入式学院上海中心讲师。从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用 platform_driver 进行注册。Linux platform driver 机制和传统的dev

2013-11-23 22:26:55 627

转载 实例解析linux内核I2C体系结构(2)

作者:刘洪涛,华清远见嵌入式学院讲师。四、在内核里写i2c设备驱动的两种方式前文介绍了利用/dev/i2c-0在应用层完成对i2c设备的操作,但很多时候我们还是习惯为i2c设备在内核层编写驱动程序。目前内核支持两种编写i2c驱动程序的方式。下面分别介绍这两种方式的实现。这里分别称这两种方式为“Adapter方式(LEGACY)”和“Probe方式(new style)”。(

2013-11-23 21:44:40 592

转载 实例解析linux内核I2C体系结构(1)

一、概述谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。第一种方法的好处(对应第二种方法的劣势)有:        ●    思路比较直接,不需要花时间去了解linux内核中复杂的I2C子系统的操作方法。第一种方法问题(对应第二种方法的好处)

2013-11-23 21:43:28 673

转载 Linux下删除不掉的文件

“为什么有些Linux文件以讨厌的减号("-")开头做文件名,无论如何都删除不掉,这到底为什么?",您可能听过您临桌的新手这样的叫喊过,希望同样的事情不会发生在您的身上,这个非常容易解决,您只要用带路径的方法就可以把他们删除了,假定一个文件名为"-abc",您可以用:  rm ./-abc 或者  rm /home/yaoyao/-abc  命令将其轻松删除,另外您也可以用

2013-11-23 10:38:21 6436

转载 几款代码比较工具

优秀的代码比较工具BeyondCompare软件功能:用于比较和合并源代码Beyond Compare 是一款不可多得的专业级的文件夹和文件对比工具。使用他可以很方便的对比出两个文件夹或者文件的不同之处。并把相差的每一个字节用颜色加以表示,查看方便。并且支持多种规则对比。对软件汉化者来说,这绝对是一款不可多得的工具。该工具有Windows和Linux下两个版本T

2013-11-23 10:06:14 800

转载 or1200下linux的i2c(二)

这段时间开始有点小忙了,但是还是坚持学习一下linux,至于上次记得是基于linux系统自带的i2c-ocores.c文件接口写了简单的测试程序,这次就基于opencores社区上大虾写好的i2c controller总线驱动来做一下分析,这个总线驱动在openrisc-3.1\drivers\i2c\busses目录下~这个总线驱动是基于Richard Herveille编写的i2c-maste

2013-11-21 22:06:21 900

转载 or1200下linux的i2c(一)

这篇blog介绍I2C的学习了,首先要在我们的or1200_soc上添加进来I2C Controller,到opencores社区上面找到i2c_latest.tar.gz这个工程包。        解压得到如下文件目录:        注意啦,这里的i2c_top.v的顶层文件需要自己编写,因为需要在工程的更顶层将i2c_master_top.v里的输入输出信

2013-11-21 22:04:52 813

转载 OpenRisc 驱动之helloworld

引言我觉得ORPSoC的关键在于‘P’,即programmable。SoC的有优势就在于只要是满足总线interface的ip,可以实现plug & work。所以一旦完成前面的工作之后,添加属于自己的ip core到ORPSoC的wishbone总线上,并编写它对应的驱动就成为非常关键的一步。本小节就做一个简单的例子,来说明需要完成的工作步骤及其中遇到的问题和对应的解决方

2013-11-21 15:30:46 873

转载 理解 linux inode

inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。下面就是我的inode学习笔记,尽量保持简单。===================================理解inode作者:阮

2013-11-21 00:36:32 688

转载 file_operations结构体详细分析

第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块的指针.这个成员用来在它的操作还在被使用时阻止模块被卸载. 几乎所有时间中, 它被简单初始化为 THIS_MODULE, 一个在 中定义的宏.这个宏比较复杂,在进行简单学习操作的时候,一般初始化为THIS_MODULE。loff_t (*llseek) (struct file * fi

2013-11-21 00:03:56 793

DE2引脚配置CSV文件

DE2开发板引脚配置信息,可以直接通过quartus ii 软件 assignments->import assignments导入,使用时注意引脚信息的对应关系。

2014-02-17

crc5_verilog

crc5的verilog实现和仿真。文件包括crc5.v和testbench文件crc5.vt以及仿真效果图。

2013-10-06

空空如也

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

TA关注的人

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