- Raw-OS操作系统内核代码汇编部分cpu.asm分析
江安吴彦祖
嵌入式软件开发
文章目录1.和汇编文件相关的头文件部分:2.raw_start_first_task()函数:3.raw_task_create(...)任务创建部分:4.PendSV_Handler中断部分:注释版代码:1.和汇编文件相关的头文件部分:#ifndefRAW_CPU_H#defineRAW_CPU_HunsignedintOS_CPU_SR_Save(void);//上述函数是把PRIMASK的值
- [转] RISC-V架构介绍
weixin_38171245
1.RISC-V和其他开放架构有何不同如果仅从“免费”或“开放”这两点来评判,RISC-V架构并不是第一个做到免费或开放的处理器架构。在开始之前,我们先通过论述几个具有代表性的开放架构,来分析RISC-V架构的不同之处以及为什么其他开放架构没能取得足够的成功。平民英雄——OpenRISCOpenRISC是OpenCores组织提供的基于GPL协议的开放源代码RISC处理器。OpenRISC具有以下
- RAW-OS之RAW_QUEUE测试代码执行过程
shengnan_wu
RTOS之RAW-OS
1.进入main()函数,代码及注释如下:intmain(intargc,char*argv[]){VCInit();start_vc_timer(1000/RAW_TICKS_PER_SECOND);/*初始化raw_os*/raw_os_init();/*创建了5个任务,调到步骤2*/queue_test2();/*启动os,其中在每次的时钟节拍中断都会触发任务0进行处理,在任务0的执行函数的
- OpenRisc-35-基于orpsoc,eCos的sd card controller的测试实验
Rill
OpenRiscopenrisc
引言之前,曾经在orpsoc的平台上,测试验证过其sdcardcontroller的linux的驱动,但是并不是很完美,经过努力,终于在eCos下完成了其全部功能的验证,包括驱动层验证,文件系统的挂载,应用层的创建文件,打开文件,复制文件,源文件与复制文件的比较等,此外,还有创建目录,切换目录等操作。本小节就分享一下整个验证过程。关于基于orpsoc+linux下的sdcardcontroller
- 数字集成电路设计-7-一个简单cpu的设计,实现,仿真与综合
Rill
数字集成电路
引言经过对OpenRISC近一年的分析与研究,在此过程中我们了解了计算机体系结构设计相关的主要概念,重要的技术,和基本思想。我觉的,现在我们有必要练练手了。本小节,我们将设计一个简单的cpu,包括ISA的设计,模块的划分,RTL实现,编写asm汇编程序,用modelsim进行仿真,以及用quartusII的综合。1,计算器与计算机我认为,在EDVAC计算机之前的计算机,都可认为是计算器。原因是,冯
- 嵌入式操作系统内核原理和开发(总结篇)
费晓行
操作系统
【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:
[email protected]】很多朋友都喜欢嵌入式操作系统的内容,但是如何实现和仿真这样一个系统一直是困扰我们的难题。现在郑重推荐一下raw-os系统,在我们的博客当中也多次提到了这个代码,希望大家可以多多阅读,不断加深对os的认识。如果有可能,大家可以到http://ishare.iask.sina.com.cn/f/334409
- 数字集成电路设计-7-一个简单cpu的设计,实现,仿真与综合
Augusdi
IC
引言经过对OpenRISC近一年的分析与研究,在此过程中我们了解了计算机体系结构设计相关的主要概念,重要的技术,和基本思想。我觉的,现在我们有必要练练手了。本小节,我们将设计一个简单的cpu,包括ISA的设计,模块的划分,RTL实现,编写asm汇编程序,用modelsim进行仿真,以及用quartusII的综合。1,计算器与计算机我认为,在EDVAC计算机之前的计算机,都可认为是计算器。原因是,冯
- verilog学习记(学习设计cpu)
费晓行
verilog学习记
【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:
[email protected]】 很早之前,自己就对cpu的设计非常感兴趣。和十几年前比较,现在网上开源的cpu代码还是很多的,比如说risc-v、openrisc、openmips等等。当然,如果是从学习的角度来说,openrisc和openmips还是非常不错的。那么,如果是希望能够深入了解cpu是怎么设计的,应该需要做哪些准
- OpenRISC - or1ksim
Jarvis_wxy
Ifyouwannauseor1ksim,startfromopenrisc/tutorialsfirst!!!Github:https://github.com/openrisc/tutorialsInthetutorials,youcanrunsomedemossimplyfollowingtheinstructions../bootstrap-quick-start.shsourceenvi
- 终于有人把RISC-V讲明白了
Vincenho_
RISC-V
0RISC-V和其他开放架构有何不同如果仅从“免费”或“开放”这两点来评判,RISC-V架构并不是第一个做到免费或开放的处理器架构。在开始之前,我们先通过论述几个具有代表性的开放架构,来分析RISC-V架构的不同之处以及为什么其他开放架构没能取得足够的成功。0.1平民英雄——OpenRISCOpenRISC是OpenCores组织提供的基于GPL协议的开放源代码RISC处理器。OpenRISC具有
- Raw-OS源代码分析之消息系统-Queue_Size
phlsheji
分析的内核版本号截止到2014-04-15。基于1.05正式版。blogs会及时跟进最新版本号的内核开发进度,若源代码凝视出现”???”字样,则是未深究理解部分。 Raw-OS官方站点:http://www.raw-os.org/ Raw-OS托管地址:https://github.com/jorya/raw-os/ 有了前一讲queue的基础后,这次来说说que
- linux 嵌入式操作系统内核原理和开发总结
benpaobagzb
很多朋友都喜欢嵌入式操作系统的内容,但是如何实现和仿真这样一个系统一直是困扰我们的难题。现在郑重推荐一下raw-os系统,在我们的博客当中也多次提到了这个代码,希望大家可以多多阅读,不断加深对os的认识。如果有可能,大家可以到http://ishare.iask.sina.com.cn/f/33440944.html这里下载raw-os的vc6.0版本,单步调试每一行代码,肯定会有所收获。(01)
- OpenRisc-43-or1200的IF模块分析
open
引言
“喂饱饥饿的CPU”,是计算机体系结构设计者时刻要考虑的问题。要解决这个问题,方法大体可分为两部分,第一就是利用principle of locality而引进的cache技术,缩短取指时间,第二就是采用各种转移预测技术,提高取指正确的概率。
只有cache,没有好的转移预测,取指时间再短,每次提前取的指令都是错的,不行。
只有转移预测,没有cache,即使每次取得指令都对,但是每次取
- OpenRisc-27-wishbone接口的vga ipcore的分析与仿真
open
引言
图形,总是给人直观的感觉。想让ORPSoC能有image/video的输出,是一件很有意义的事情,而VGA就是其中一个不错的选择。
本小节就分析一下一个wishbone接口的vga模块。
1,模块准备
下载:
http://opencores.org/project,vga_lcd
2,模块的architecture
3,模块的使用
这一步需要一点与LCD
- OpenRisc-26-openrisc中断实验
open
引言
中断(异常)系统,可以说是计算机体系结构重要的组成部分,也是最复杂的部分。 现在的很多外设,都提供中断处理机制,来减少CPU的一直占用时间。 本小节就通过一个简单的例子,来说明openrisc的中断机制的使用方法。 1,功能简介
本小节实现一个wishbone slave
- or1200下Raw-OS学习(例子篇)
raw
没有图我说个~毛(J)线(B)~对吧???
直接上一个以前做过的项目来说说怎么去从一个前后台的程序过度到利用操作系统去管理的你代码吧~以前想过直接用事件驱动的框架去编写代码的,无奈这方面的资料实在太少~而且我的水平也不足以胜任,既然现在在全力支持Raw-OS,那么就用RTOS
- OpenRisc-24-ORPSoC boot过程分析
open
引言
之前做了很多工作,能起orpmon,能起linux,能run helloworld。但是这些都可以说是空中楼阁,如果不把CPU的启动过程搞明白,总感觉心里没底似的。所以本小节就看一下ORPSoC在最初上电之后做的一些工作。
Note:并不讨论上电timing等内容,直接从fetch开始。
1,从哪里取第一条指令
从or1200_defines.v里面可以看到PC的初值,
- Raw-OS源代码分析之同优先级任务切换
源代码
分析的内核版本号截止到2014-04-15,基于1.05正式版,blogs会及时跟进最新版本号的内核开发进度,若源代码凝视出现”???”字样,则是未深究理解部分。
Raw-OS官方站点:http://www.raw-os.org/
&n
- OpenRisc-32-ORPSoC烧写外部spi flash
Flash
引言
经过前面的分析和介绍,我们对ORPSoC的启动过程(http://blog.csdn.net/rill_zhen/article/details/8855743)和
ORpSoC的debug子系统(http://blog.csdn.net/rill_zhen/article/details/9045837)有了初步的了解,
但是对于启动和debug前的工作还没有仔细分析过。比如FPGA
- OpenRisc-50-or1200的freeze模块分析
open
引言
之前,我们分析or1200的控制通路中的sprs模块和except模块,本小节,我们就分析一下or1200控制通路的最后一个模块,就是freeze模块。
1,整体分析
freeze模块,顾名思义,就是根据各个流水阶段的反馈信号,负责产生控制整条流水线各个阶段的暂停信号,如取指阶段的genpc_freeze和if_freeze信号,解码阶段的id_freeze信号,执行阶段
- OpenRisc-30-SD card controller模块分析与验证
controller
引言
ORPSoC的硬件平台是包含SD card controller控制器的,但是对应的linux里面却没有对应的linux的驱动程序,这使ORPSoC的SD card的使用收到了很大的限制。没有驱动,硬件是不能工作的,SD卡控制器的驱动,linux提供了非常好的framework,在写驱动时只要开发者=关心最底层的部分,就是和硬件直接打交道的部分,即linuxMMC framework的HO
- OpenRisc-35-基于orpsoc,eCos的sd card controller的测试实验
controller
引言
之前,曾经在orpsoc的平台上,测试验证过其sd card controller的linux的驱动,但是并不是很完美,经过努力,终于在eCos下完成了其全部功能的验证,包括驱动层验证,文件系统的挂载,应用层的创建文件,打开文件,复制文件,源文件与复制文件的比较等,此外,还有创建目录,切换目录等操作。
本小节就分享一下整个验证过程。
关于基于orpsoc+linux下的sd card
- OpenRisc-31-关于在设计具有DMA功能的ipcore时的虚实地址转换问题的分析与解决
open
引言
之前,我们在讨论基于ORPSoC的ipcore设计时提到过DMA的问题,当时我们实现DMA的功能时,访问的是local memory,并没有使用主存(即外部的SDRAM),使用的是本地的一块存储区域。所以也就不存在虚实地址转换的问题。但是,要想实现一个规范的,通用的,真正意义上的附带有DMA功能的ipcore,虚实地址转换就是必须要解决的问题了。
比如,软件要vga controller
- OpenRisc-39-ORPSoC,or1200的memory hierarchy整体分析
memory
引言
前面我们简单分析了ORPSoC的整体结构,or1200_top的整体结构,or1200_cpu的整体结构。
并对ORPSoC的启动过程,ORPSoC的debug子系统,clock子系统进行了介绍。
本小节,我们一起来分析一下ORPSoC的存储器组织(memory hierarchy)。
1,背景知识
在分析ORPSoC的memory hierarchy之前,我们有必要先了解一下
- OpenRisc-22-添加自己的DMA-like ipcore到ORSoC并测试
like
引言 之前写了一个wishbone接口的slave,work的很好。 但是要想实现一个功能完成的ipcore,必然要有master接口。 这次就写一个ipcore(mycore),既包含slave,又包含master。 一个具有类似DMA功能的ip core。
另:本小节中省略了一些virtualbox下的操作细节,请参考上一篇文章:
http://blog.csdn.net/
- OpenRisc-48-or1200的SPRS模块分析
open
引言
之前,我们在分析or1200的WB模块时(http://blog.csdn.net/rill_zhen/article/details/10220619),介绍了OpenRISC的GPRS(general purpose register set)。除了GPRS之外,大多数的CPU还有SPRS(special purpose register set)。在分析完or1200的数据通路之后,
- OpenRisc-29-ORPSoC的debug子系统分析
debug
引言
正如前面所说,“如果把SOC比作一个人的话”,那么debug子系统就相当于医生,可以检测身体的健康状态。本小节就简单分析一下ORPSoC的debug子系统。
debug系统担任两个主要任务,除了调试以外,还负责对flash的编程。 1,子系统的结构
2,结构的说明
整个debug系统可简单的分成两部分,上部分和下部分,上下两部分之间通过JTAG协议通信。 1>上
- OpenRisc-45-or1200的ID模块分析
open
引言
之前,我们分析了or1200流水线的整体结构,也分析了流水线中IF级,EX级,本小节我们来分析ID(insn decode)级的一些细节。
1,基础
or1200的pipeline的ID阶段包含一个模块,就是ctrl模块,其对应的文件是or1200_ctrl.v。ID,就是instruction decode,顾名思义,其主要任务就是对从IF阶段取得的指令进行解析,
- OpenRisc-44-or1200的pipeline整体分析
pipeline
引言
我们在前面分析了ORPSoC,or1200_top,和or1200_cpu的整体架构,在最近,我们也分析了or1200的pipeline(流水线)中的两级,EX级和IF级。
但是,我们还没有从宏观的角度,整体的了解一下or1200的流水线结构,本小节就做这件事情。
1,流水线 1>概述
关于流水线的概念,历史,划分等等这些内容,在很多文献里都提到过,而且我们之前也介绍过,这
- OpenRisc-43-or1200的IF模块分析
open
引言
“喂饱饥饿的CPU”,是计算机体系结构设计者时刻要考虑的问题。要解决这个问题,方法大体可分为两部分,第一就是利用principle of locality而引进的cache技术,缩短取指时间,第二就是采用各种转移预测技术,提高取指正确的概率。
只有cache,没有好的转移预测,取指时间再短,每次提前取的指令都是错的,不行。
只有转移预测,没有cache,即使每次取得指令都对,但是每次取
- 异常的核心类Throwable
无量
java源码异常处理exception
java异常的核心是Throwable,其他的如Error和Exception都是继承的这个类 里面有个核心参数是detailMessage,记录异常信息,getMessage核心方法,获取这个参数的值,我们可以自己定义自己的异常类,去继承这个Exception就可以了,方法基本上,用父类的构造方法就OK,所以这么看异常是不是很easy
package com.natsu;
- mongoDB 游标(cursor) 实现分页 迭代
开窍的石头
mongodb
上篇中我们讲了mongoDB 中的查询函数,现在我们讲mongo中如何做分页查询
如何声明一个游标
var mycursor = db.user.find({_id:{$lte:5}});
迭代显示游标数
- MySQL数据库INNODB 表损坏修复处理过程
0624chenhong
tomcatmysql
最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息。查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。启动Tomcat,用户登录系统,用netstat -
- 剖析如何与设计人员沟通
不懂事的小屁孩
工作
最近做图烦死了,不停的改图,改图……。烦,倒不是因为改,而是反反复复的改,人都会死。很多需求人员不知该如何与设计人员沟通,不明白如何使设计人员知道他所要的效果,结果只能是沟通变成了扯淡,改图变成了应付。
那应该如何与设计人员沟通呢?
我认为设计人员与需求人员先天就存在语言障碍。对一个合格的设计人员来说,整天玩的都是点、线、面、配色,哪种构图看起来协调;哪种配色看起来合理心里跟明镜似的,
- qq空间刷评论工具
换个号韩国红果果
JavaScript
var a=document.getElementsByClassName('textinput');
var b=[];
for(var m=0;m<a.length;m++){
if(a[m].getAttribute('placeholder')!=null)
b.push(a[m])
}
var l
- S2SH整合之session
灵静志远
springAOPstrutssession
错误信息:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cartService': Scope 'session' is not active for the current thread; consider defining a scoped
- xmp标签
a-john
标签
今天在处理数据的显示上遇到一个问题:
var html = '<li><div class="pl-nr"><span class="user-name">' + user
+ '</span>' + text + '</div></li>';
ulComme
- Ajax的常用技巧(2)---实现Web页面中的级联菜单
aijuans
Ajax
在网络上显示数据,往往只显示数据中的一部分信息,如文章标题,产品名称等。如果浏览器要查看所有信息,只需点击相关链接即可。在web技术中,可以采用级联菜单完成上述操作。根据用户的选择,动态展开,并显示出对应选项子菜单的内容。 在传统的web实现方式中,一般是在页面初始化时动态获取到服务端数据库中对应的所有子菜单中的信息,放置到页面中对应的位置,然后再结合CSS层叠样式表动态控制对应子菜单的显示或者隐
- 天-安-门,好高
atongyeye
情感
我是85后,北漂一族,之前房租1100,因为租房合同到期,再续,房租就要涨150。最近网上新闻,地铁也要涨价。算了一下,涨价之后,每次坐地铁由原来2块变成6块。仅坐地铁费用,一个月就要涨200。内心苦痛。
晚上躺在床上一个人想了很久,很久。
我生在农
- android 动画
百合不是茶
android透明度平移缩放旋转
android的动画有两种 tween动画和Frame动画
tween动画;,透明度,缩放,旋转,平移效果
Animation 动画
AlphaAnimation 渐变透明度
RotateAnimation 画面旋转
ScaleAnimation 渐变尺寸缩放
TranslateAnimation 位置移动
Animation
- 查看本机网络信息的cmd脚本
bijian1013
cmd
@echo 您的用户名是:%USERDOMAIN%\%username%>"%userprofile%\网络参数.txt"
@echo 您的机器名是:%COMPUTERNAME%>>"%userprofile%\网络参数.txt"
@echo ___________________>>"%userprofile%\
- plsql 清除登录过的用户
征客丶
plsql
tools---preferences----logon history---history 把你想要删除的删除
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_spac
- 【Pig一】Pig入门
bit1129
pig
Pig安装
1.下载pig
wget http://mirror.bit.edu.cn/apache/pig/pig-0.14.0/pig-0.14.0.tar.gz
2. 解压配置环境变量
如果Pig使用Map/Reduce模式,那么需要在环境变量中,配置HADOOP_HOME环境变量
expor
- Java 线程同步几种方式
BlueSkator
volatilesynchronizedThredLocalReenTranLockConcurrent
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 1.同步方法&
- StringUtils判断字符串是否为空的方法(转帖)
BreakingBad
nullStringUtils“”
转帖地址:http://www.cnblogs.com/shangxiaofei/p/4313111.html
public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==
null
或 str.length()==
0
- 编程之美-分层遍历二叉树
bylijinnan
java数据结构算法编程之美
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class LevelTraverseBinaryTree {
/**
* 编程之美 分层遍历二叉树
* 之前已经用队列实现过二叉树的层次遍历,但这次要求输出换行,因此要
- jquery取值和ajax提交复习记录
chengxuyuancsdn
jquery取值ajax提交
// 取值
// alert($("input[name='username']").val());
// alert($("input[name='password']").val());
// alert($("input[name='sex']:checked").val());
// alert($("
- 推荐国产工作流引擎嵌入式公式语法解析器-IK Expression
comsci
java应用服务器工作Excel嵌入式
这个开源软件包是国内的一位高手自行研制开发的,正如他所说的一样,我觉得它可以使一个工作流引擎上一个台阶。。。。。。欢迎大家使用,并提出意见和建议。。。
----------转帖---------------------------------------------------
IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言
- 关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer
daizj
spring
1、PropertyPlaceholderConfigurer
Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。
基本的使用方法是:(1)
<bean id="propertyConfigurerForWZ&q
- 二叉树:二叉搜索树
dieslrae
二叉树
所谓二叉树,就是一个节点最多只能有两个子节点,而二叉搜索树就是一个经典并简单的二叉树.规则是一个节点的左子节点一定比自己小,右子节点一定大于等于自己(当然也可以反过来).在树基本平衡的时候插入,搜索和删除速度都很快,时间复杂度为O(logN).但是,如果插入的是有序的数据,那效率就会变成O(N),在这个时候,树其实变成了一个链表.
tree代码:
- C语言字符串函数大全
dcj3sjt126com
cfunction
C语言字符串函数大全
函数名: stpcpy
功 能: 拷贝一个字符串到另一个
用 法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main
- 友盟统计页面技巧
dcj3sjt126com
技巧
在基类调用就可以了, 基类ViewController示例代码
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[MobClick beginLogPageView:[NSString stringWithFormat:@"%@",self.class]];
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
flyvszhb
javajdk
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7.
安装jdk1.6前,执行java -version得到
C:\Users\liuxiang2>java -version
java version "1.7.0_21&quo
- Java在创建子类对象的同时会不会创建父类对象
happyqing
java创建子类对象父类对象
1.在thingking in java 的第四版第六章中明确的说了,子类对象中封装了父类对象,
2."When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the sam
- 跟我学spring3 目录贴及电子书下载
jinnianshilongnian
spring
一、《跟我学spring3》电子书下载地址:
《跟我学spring3》 (1-7 和 8-13) http://jinnianshilongnian.iteye.com/blog/pdf
跟我学spring3系列 word原版 下载
二、
源代码下载
最新依
- 第12章 Ajax(上)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- BI and EIM 4.0 at a glance
blueoxygen
BO
http://www.sap.com/corporate-en/press.epx?PressID=14787
有机会研究下EIM家族的两个新产品~~~~
New features of the 4.0 releases of BI and EIM solutions include:
Real-time in-memory computing –
- Java线程中yield与join方法的区别
tomcat_oracle
java
长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。
&nb
- android Manifest.xml选项
阿尔萨斯
Manifest
结构
继承关系
public final class Manifest extends Objectjava.lang.Objectandroid.Manifest
内部类
class Manifest.permission权限
class Manifest.permission_group权限组
构造函数
public Manifest () 详细 androi
- Oracle实现类split函数的方
zhaoshijie
oracle
关键字:Oracle实现类split函数的方
项目里需要保存结构数据,批量传到后他进行保存,为了减小数据量,子集拼装的格式,使用存储过程进行保存。保存的过程中需要对数据解析。但是oracle没有Java中split类似的函数。从网上找了一个,也补全了一下。
CREATE OR REPLACE TYPE t_split_100 IS TABLE OF VARCHAR2(100);
cr