MIPS点滴
文章平均质量分 90
pankul
这个作者很懒,什么都没留下…
展开
-
MIPS 平台下 I/O 端口的读写--以龙芯为例
MIPS的IO读写一般情况都是通过MMIO来实现的,所有的IO device 的register都映射到memory中;并不像X86上的具有独立的编址:分成memory 总线和IO总线。两套独立的地址空间。独立编址,统一编址的概念大概是: I/O地址空间与内存地址空间编址方式是否统一?例如8051为统一编址,I/O和存储器总计64K地址空间;X86为独立编址,分为I/O地址空间和memory地转载 2013-03-13 13:55:46 · 2280 阅读 · 0 评论 -
龙芯开发(2)——Makefile分析
暂且转载,后面有时间在验证是否如此!makefile分析:/pmon/loader.2fdev/Makefile: 用./getname获得开发板型号的Makefile: Makefile.2fdev/pmon/loader.2fdev/Makefile.2fdev: 说明开发板信息及MakefileTARGET=Bonito2fdevTARGETE转载 2013-08-01 19:25:48 · 1570 阅读 · 0 评论 -
龙芯开发(1)——PMON的编译和使用
一、工具链安装:tar –C / -zxvf toolchain-pmon.tgztar –C / -zxvf gcc-3.4.6-2f.tgz echo PATH=/usr/local/comp/mips-elf/gcc-2.95.3/bin:/opt/gcc-3.4.6-2f/bin:$PATH> > ~/.bash_profile 二、Pmon的编译方法:转载 2013-08-01 19:21:35 · 3763 阅读 · 0 评论 -
Linux shell中的一个问题 ${}带正则匹配的表达式
目前在准备龙芯项目的PMON,在研究其编译过程的时候,看到一些make 语句,百思不得其解。后来在shell编程中看到一点资料,牵扯到Shell中的正则表达式。故记录下来,以备后来查阅。原创 2013-07-26 13:49:00 · 3051 阅读 · 0 评论 -
MIPS GCC 嵌入式汇编(龙芯适用)
1. GCC 内嵌汇编的基本格式asm("assembly code");如: asm("syscall"); //触发一个系统调用如果有多条指令,则需在指令尾部添加'/t'和'/n',如: asm("li v0, 4011/t/n" "syscall");括号里的字符串 GCC 前端不转载 2013-08-15 15:06:56 · 1109 阅读 · 0 评论 -
MIPS架构的简单讨论
MIPS架构的简单讨论 以BIOS的经验开始接触MIPS的东西,项目也在进行中。抽空给部门的人做一个report,简单的列出来一些要讲的东西,ppt也懒得做了。这里仅作为一个大纲吧。一、RISC和CISC1、 由来,精简过程2、 CISC和RISC的比较 比较内容CISCRISC指令系统复杂原创 2013-03-20 11:42:12 · 1280 阅读 · 0 评论 -
PMON学习笔记
pmon 学习笔记如果生命有终点我就陪你到终点如果生命没终点我就陪你到永远……本笔记零散写于2009 年2 月~5 月,最初基于2009 年1 月20 日dev.lemote.com 上的pmon 版本。后期使用的是更新版本,部分代码和当前版本有误差,不过应该影响不大。2目录扯3start.S 4配置空间的访问10superio_init 11转载 2013-12-11 23:58:23 · 3977 阅读 · 0 评论 -
nand flash 的oob 及坏块管理
nand flash 的oob 及坏块管理目录(?)[+] 0.NAND的操作管理方式 NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小转载 2014-01-03 10:04:57 · 1369 阅读 · 0 评论 -
mtd-utils工具的编译,
在ubuntu 10.04上交叉编译编译 mtd-utils =====================================================================================在写文章之前, 大概有两天时间在找mtd-utils的交叉编译资料, 经常找到的都是过时的, 或者版本很低, 或者需要改一堆的Makefile, 能转载 2014-01-03 11:09:32 · 926 阅读 · 0 评论 -
关于nand flash上实现jffs2文件系统的学习
最近在龙芯平台上弄nand flash的实现,由于以前类似的项目只是使用过NOR flash,想到来说没有这么多概念。而现在第一次接触nand flash,又牵扯到jffs2文件系统的概念和使用。所以需要学习的东西还是蛮多的!关于这一块,需要掌握的东西大概列举一个list。1、nand flash 是何物,阅读datasheet,了解flash中的概念。page、block 、oo原创 2014-01-03 10:27:47 · 2175 阅读 · 0 评论 -
MIPS 平台下 I/O 端口的读写--以龙芯为例
MIPS 下,I/O 端口是直接映射到地址空间的,不像x86下有专用的 I/O 空间,使用专用的 in/out 指令访问之。故而 MIPS 上访问 I/O 端口直接使用访存指令访问对应的地址即可。但是各种控制器的寄存器映射到地址空间的何处,具体的平台就不一样了。下面以龙芯2E为例说明之。龙芯2E 下使用 C语言读写 8259A 的 0x20 端口char *p_转载 2013-07-31 16:56:34 · 1068 阅读 · 0 评论 -
U-Boot启动过程完全分析
1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口 (2)第二阶段的功能Ø 初始化本阶段使用的硬件设备Ø转载 2013-05-30 20:58:09 · 900 阅读 · 0 评论 -
MIPS在X86上的模拟器--Spim编译器
最近一年都在学习研究MIPS架构的东西,现在也在做Cavium的案子,所以把一些MIPS相关的东西整理一下。在学习MIPS架构的时候,肯定要涉及到相关的指令集,在x86上BIOS都需要熟练掌握汇编语言,这是bios工程师的必然条件,当然efi后面可能比较淡化了。而在MIPS的指令学习中,也需要练习编写MIPS汇编程序,那么就需要一个编译器,在X86上有masm和nasm。同样这里讨论使用S原创 2013-03-15 13:50:23 · 12443 阅读 · 2 评论 -
嵌入式系统使用的闪存:NOR和NAND
目前在嵌入式应用中使用较多的flash主要有两种非易失闪存技术:NOR和NAND。这里做一些简单比较。NOR是intel在98年提出的,而NAND是东芝提出的。NOR可以再芯片内执行:XIP(eXecute In Place),也即是在flash内部执行,可以不读到ram中。这个x86中类似于bios rom。NOR的传输效率比较高,在低容量的情况下成本效益比较高。但是NOR的写入和擦除速原创 2013-03-18 11:45:49 · 1343 阅读 · 0 评论 -
U-boot的启动和flash中的位置
2.BootingUpMIPS项目中,必须先启动uboot,在启动Linux系统。以目前手上的案子为例,系统主板上包含一64Mbit或者1Gbit的flash,其内部存有bootloader的二进制文件用于启动系统。 另外包含一些测试、应用软件。一般情况下,Linux系统也会并存于flash上,或者放在CF卡、SATA HD之中均可。 2.1Flash Layout下图可以直观的了原创 2013-03-21 22:07:35 · 3293 阅读 · 0 评论 -
update image on the board for uboot
Updating image on the board本章节主要讨论如何更新flash上的image,包括uboot和linux。当然,前提条件是不将flash取出,而是在线刷写flash。刷写的方式有多种,包括通过tftp协议将镜像从ftp server上download到板子上;使用fatload指令从fat格式的接口device中加载到内存上; 或者使用console 的kermit 协原创 2013-03-21 22:26:01 · 1733 阅读 · 0 评论 -
Cavium MIPS的内存布局和映射
Cavium MIPS的内存布局 这里主要想讨论MIPS架构的内存分配问题,对Cavium的了解比较多,所以从熟悉的芯片开始做衍生。Cavium的架构基本上会遵循MIPS的内存分配规则,不会有太大的差异。所以以下讨论均基于Cavium的MIPS架构。 一、物理地址的分配关于物理内存的讨论,也是基于64bit架构的。MIPS的64bit架构在上世纪90年代开始了。其技术一直都领原创 2013-03-22 14:59:41 · 5246 阅读 · 0 评论 -
处理器中的流水线技术
处理器中的流水线技术在现代处理器中,流水线是一个最基本的概念。在了解cpu的时候,很多时候会提及拥有多少级流水线。虽然这个概念并不是在计算机技术中诞生的,但是这个技术却在处理器世界中大放异彩。流水线(Pipeline)技术是指程序在执行时候多条指令重叠进行操作的一种准并行处理实现技术。通俗的讲将一个时序过程,分解成若干个子过程,每个过程都能有效的与其他子过程同时执行。这种思想最初是在RIS原创 2013-04-07 22:32:41 · 9259 阅读 · 0 评论 -
Linux内核里写i2c client 驱动的两种方式
最近在搞I2C的驱动调用,顺便看了下i2c的驱动的实现,看了下其他网友的总结,说的很到位。固转载之!------------------------------------------------------------------------------------------------------------前文介绍了利用/dev/i2c-0在应用层完成对i2c设备的操作,但转载 2013-05-15 15:22:26 · 1481 阅读 · 0 评论 -
Cavium octeon 与intel DPDK的一些比较
关于Cavium OCTEON 和intel DPDK在网络处理上的一些差别。以下为转载。转载请保留原出处以及作者联系方式,谢谢![email protected]本文网易云笔记链接,http://note.youdao.com/share/?id=248a6e3b877824484a02b507f69ccf84&type=note本文新浪博客链转载 2013-05-20 17:37:50 · 8716 阅读 · 0 评论 -
U-boot启动内核原理
U-boot启动内核原理 ARM平台U-boot启动内核命令如:bootcmd=bootm 0xc4040014 在./common/cmd_bootm.c文件中,bootm命令对应的do_bootm函数,当分析uImage中信息发现OS是Linux时,调用./lib_arm/armlinux.转载 2013-05-12 00:13:41 · 1217 阅读 · 0 评论 -
龙芯上用busybox制作ram filesystem的过程。
记录下在龙芯上制作ram filesystem的过程。其中ramdisk.tiny5可以在安装busybox的过程中得到最初的雏形。具体过程可以参考网络上大量的文章,并实际去操作一次。原创 2014-01-22 16:31:25 · 2235 阅读 · 0 评论