or1200下raw-os(仿真环境篇)
貌似最近都在公司混日子过了,怎么办?哎哎哎~罪过啊罪过,不过也是的,加工资居然没我份,顶领导个肺的,叫我怎么继续活啊~哎哎哎~
算了,不谈这些鸟事情了,说多了都是泪啊,这篇blog开始我们进入raw-os的api学习,为期大概是2个月吧,因为我从来没有接触过操作系统,好多东西都要补,本科学的是通信专业,妹的天天搞电路,不是放大器就是滤波器,不是锁相环就是AGC,天天搞天天搞,搞到现在出来工作了分配到个做软件的岗位,天朝就是这个坑爹来的么,从来都不懂什么叫资源合理分配,不过也没办法了,有时也找找自身的原因,不要去做愤青了~
这篇blog先说说在openrisc架构体系下如何做验证raw-os的程序吧,至于实验环境还是官方提供的ubuntu镜像,因为这样我们就可以不用手动地区编译万恶的cross-tools,这些手动编译起来超级麻烦。
至于官方提供的是vbox的镜像,真是什么都是开源的,打开深入之后就是这个样子的了,里面都是一些文档,至于环境搭建请参考《or1200软件环境搭建》,由于如果只是学习raw-os里kernel提供的APIs的话,现在可以不用去搭建FPGA上的SOC,这样学起来会比较快。
但是我个人是不太喜欢用图形界面去搞的,在linux上命令行才是王道,所以呢,用linux的text模式登陆吧,类似于ubuntu server版本的情况,官方怎么不用server版呢,可能要迎合大众的口味吧~
好吧,修改grub文件,如下图啦~
命令是:sudo gedit /etc/default/grub
然后对着:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash text"
GRUB_CMDLINE_LINUX="vga=789"
至于“vga=789”这个参数呢,貌似是有个参数表的,这个是修改成800*600的分辨率和24bit色的,这个为了分辨率而弄,具体可以google一下有关文章咧~
好,保存,然后更新配置选项。
命令:sudo update-grub
OK,到此你就可以reboot你的系统了。
命令:sudo reboot
然后等再开机你会发现你没进入图形界面了,这个应该是一片黑的,然后在你的本本的键盘上激活控制台。
命令:crtl+alt+f1~f6均可~默认开启是有6个tty控制台的,现在用crtl+alt+f2来激活tty2
账号密码均为:openrisc
登录进来,这里就是linux万恶的命令行模式,在这里我们就可以在纯软件而不用硬件平台去验证所写的raw-os程序,然后我们就一个例子看看如果使用这个环境。
至于txj老大会不会最后选择FPGA平台的openrisc架构作为Raw-OS的下一个发展方向,我都会全力支持陈sir的伟大宏愿的~支持~v587,至于所写的例程都会作为学习raw-os的入门文档,当然也要希望各位去捧场lor~
不废话了,接下来看看怎么使用这个环境吧~
在这个tty的环境中和进了图形界面的terminal环境没什么区别的,唯一不能的就是图形复制和粘贴操作,这个比较可恨,遇到一个你比较长的命令的话就要敲半天,但是也没关系了,码农唯一一个技能就是能码,你吹我不胀,要不也可以写个shell脚本从windows那边粘贴命令过来连续执行。
顺便了,在这个环境还能强制我们用shell和VIM,想转linux环境的最好还是自己逼迫自己使用这些东东吧。
一个例子,这个有关定时器的一个例程了,这个星期会转入到任务同步和通信的学习,首先是信号量,然后再慢慢加深。
1.首先挂在windows上的共享文件夹,目录根据自己的环境定哈~
2.再然后看看共享文件夹里面关于raw-os工程的目录结构
之前移植raw-os的blog里又说这个文件目录结构,这里不细说了~
3.然后打开or1ksim.cfg文件,这个就是在linux中利用or1ksim这个软件架构模拟openrisc运行行为的配置文件,至于or1ksim已经安装好在官方提供的镜像了,这里就直说用法啦~
找到section uart,修改成,这样就能在tty控制台观察到log了~
4.然后回到tty里面,因为工程已经写好,就直接make了,在tty里面就是比在terminal里面的速度快好几倍~爽啊~
到最后会生成boot.or32文件,这个就是or1ksim能识别的执行文件
5.输入命令sim -f or1ksim.cfg boot.or32,回车,就可以观察到代码的运行情况,这样在软件上验证代码比起每次都要拿个开发板去验证爽多了
因为现在软件这边打算在一个产品上上Raw-OS,现在是学习和验证Raw-OS的,因为软件这边是我全部负责的,所以用什么技术不用经过领导评审,哇哈哈~用的是TI的cortex-M4的单片机,话说TI也太恶心了,明明量产了,供货周期居然要18个月,你妹的,不过也好,我刚好能把软件重写一遍~上Raw-OS去跑~
希望大家能继续支持Raw-OS的发展,小弟我也默默在支持支持~
or1200下raw-os(仿真环境篇)的更多相关文章
- 基于raw os 的事件触发系统
Raw os的事件触发系统有以下特点: 1 基于UML的状态机理念设计,实现了有限状态机(fsm)以及层次状态机(HSM). 2 实现了活动对象(ACTIVE OBJECT)的特性,一个活动对象包含了 ...
- 一、React Native 搭建开发环境(1)(Mac OS - IOS项目篇)
React Native是Facebook推出的一个开发IOS和安卓APP的技术.至于更多的详情,这里不再描述,大家可以自行百度它的定义. 原因:由于我想在一台电脑上同时开发IOS和Android两个 ...
- 基于 Mathematica 的机器人仿真环境(机械臂篇)[转]
完美的教程,没有之一,收藏学习. 目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些 ...
- mac os 下搭建android开发环境
mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...
- or1200下raw-os学习(任务篇)
这次就来说说基于上一节介绍的系统框图去建立我们所需要的任务,顺便学习Raw-OS提供的API,根据上节的分析,对于Slave Board有如下设计: Slave Board有三个任务,分别负责测试阻抗 ...
- OS X环境下如何搭建编译Cocos2D-X v3.x的Android Studio工程
Cocos2D-X官网已经简单介绍了如何在OS X环境下搭建Cocos2D-X v2.x和v3.x的指南.具体链接为:http://www.cocos.com/doc/article/index?ty ...
- 【探索之路】机器人篇(5)-Gazebo物理仿真环境搭建_让机器人运动起来
如果完成了前两步,那么其实我们已经可以去连接我们的现实中的机器人了. 但是,做机器人所需要的材料还没有到,所以我们这里先在电脑平台上仿真一下.这里我们用到的就算gazebo物理仿真环境,他能很好的和R ...
- Mac下搭建php开发环境教程
方案一:原生安装 这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例,需要的朋友可以参考 ...
- caffe框架下目标检测——faster-rcnn实战篇操作
原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1) ...
随机推荐
- .net高级技术(class0515)
本次课程中讲的有的东西都是根据初学者的认知规律进行了调整,并不是严谨的,比如很多地方在多AppDomain条件下很多说法就不对了,但是说严谨了大家就晕了,因此继续不严谨的讲吧. 很多面试题都在这阶段的 ...
- Java每日一则-001
Java中类名与文件名的关系 1.Java保存的文件名必须与类名一致: 2.如果文件中只有一个类,文件名必须与类名一致: 3.一个Java文件中只能有一个public类: 4.如果文件中不止一个类,文 ...
- es 的集群状态
es的集群状态一共有三种 : green yellow red 状态是基于 碎片的 等级进行划分的 .
- jar,war,ear区别及java基础杂七八
jar,war,earqu区别 这三种文件都可以看作是java的压缩格式,其实质是实现了不同的封装: jar--封装类war--封装web站点ear--封装ejb.它们的关系具体为:jar: ...
- [cocos2d-x]File文件的IO读写处理
转载:http://blog.csdn.net/chiuan/article/details/8618411 为了保存自定义数据文件,需要保存文件和读取文件,也就是File的IO处理: 针对cocos ...
- iOS事件机制(二)
从上一篇的内容我们知道,在iOS中一个事件用一个UIEvent对象表示,UITouch用来表示一次对屏幕的操作动作,由多个UITouch对象构成了一个UIEvent对象.另外,UIResponder是 ...
- [iOS UI进阶 - 4.0] 涂鸦app Demo
A.需求 1.超简易画图,只有一种画笔 2.清屏功能 3.回退功能 4.保存功能 5.使用了cocos2D code source: https://github.com/hellovoidwor ...
- 精通Linux的“kill”命令
无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭.在Linux(还有Mac),你可以用一个"kill"命令强制终结它.在这个教程中,我们将展示给你多种 ...
- CodeForces 548B Mike and Fun (模拟)
题意:给定一个n*m的矩阵,都是01矩阵,然后每次一个询问,改变一个格的值,然后问你最大有数是多少. 析:就是按他说的模拟,要预处理,只要把每行的最大值记下来,当改变时,再更新这一行的最大值. 代码如 ...
- ORA-01033: ORACLE initialization or shutdown in progress 实用的处理方法
ORA-01033: ORACLE initialization or shutdown in progress 实用的处理方法,此问题通常是由于电脑非正常关机造成的,我们可以用下面的方法查找出是那个 ...