Ubuntu下将TinyOS移植到CC2430芯片

实验目的

将TinyOS移植到CC2430芯片

实验准备

硬件:CC2430开发板一块,仿真器(debugger)

软件:Keil,TinyOS 2.x,TinyOS8051wg-0.1pre4.tgz,SmartRF04 FlashProgramer

其它:在做实验之前请确保你已经正确安装了TinyO-2.1.1及其它工具。具体安装步骤可以参考网上资料。

实验步骤

步骤1:安装Keil

(1) 由于是在linux系统下,所以需要安装wine来运行.exe文件。在终端运行

Sudo apt-get install wine 装完之后就可以安装keil。(wine安装路径是~/.wine   另外~ 代表的是$HOME路径。.wine代表隐藏文件,在GNOME显示隐藏文件的操作是CTRL +h)

(2)

A.

在安装前,先在终端中设定WINEPREFIX路径(模拟windows环境下C盘路径)如下,

在终端中输入:WINEPREFIX=~/.wine.keil

为什么设定的是/.wine.keil 而不是/.wine?是因为Tinyos 中调用Keil使用的默认路径是/.wine.keil,为方便,将安装路径和Tinyos设定路径保持统一

B.

紧接,用cd命令,把当前工作路径切换到有Keil安装执行文件(若安装文件名为Setup.exe)的路径。

然后在终端中输入: WINEPREFIX=~/.wine.keil  wine Setup.exe

一直默认安装,其中其安装路径默认设置为C:Keil。(PS wine是模拟windows环境,默认情况下C:映射成/.wine/dirve_c,这样两个不同的系统就互相联通)

(3) 剩下的工作就是破解软件的工作了。

步骤2:安装tinyos-2.x-contrib

在安装了TinyOS-2.1.1后/opt目录下应该有tinyos-2.1.1目录。接着TinyOS8051wg-0.1pre4.tgz下载链接(http://www.tinyos8051wg.net/download)

将其放到/opt目录下,接着输入如下命令对该文件解压缩

cd /opt

tar –xvzf TinyOS8051wg-0.1pre4.tgz

此时会在/opt下生成一个tinyso-2.x-contrib目录。

步骤3:修改环境变量

在 tinyos-2.x-contrib/diku目录下有个env 文件,该文件包含了要设置的环境变量,根据需要修改,由于现在用的是tinyos-2.1.1版本,所以/opt目录下原有的tinyos-2.x目录已 经被tinyos-2.1.1取代,所以需要修改TOSROOT,改成:

TOSROOT = /opt/tinyos-2.1.1否则提示找不到makerules文件。

此外,由于我们使用的是keil编译器中,所以编译器选项要选择keil export MCS51_COMPILER = keil。在修改完之后source一下env使环境变量有效。

注意:

(1)每次重新启动后如果需要编译,需要运行此命令(source /opt/tinyos-2.x-contrib/diku/env),要不然系统会提示,没有make有效目标

(2) 命令不能是 source env。因为env系统默认是目录。

步骤4:编译工程

编译工程文件(以BlinkNoTimerTask为例)

cd /diku/common/apps/BlinkNoTimerTask

make cc2430em

如果出现如下错误

Z:/opt/tinyos-2.x-contrib/diku/common/apps/BlinkNoTimerTask/build/cc2430em>C:/Keil/C51/BIN/A51.EXE "startup.a51" SET (SMALL) DEBUG EP
File not found

make: *** [build/cc2430em/startup.OBJ] 错误 49

说明keil安装路径错误,按步骤2重新安装。TinyOS默认的keil安装路径是$(HOME)/.wine.keil,确保路径正确。(此处问题最多,只要能通过正确安装,出现$(HOME)/.wine.keil/drive_c/Keil这目录,就能解决该问题)

如出现***ERROR L257:EXTENDED LINKER REQUIRES UPGRADE TO PK51那么很可能是破解没有成功。重新安装Keil,并且使用keygen破解。

其他错误代码可参考ARM INFOMATION CENTER,

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka11370.html

最后如果编译成功的话,就会生成hex文件,在/build/cc2430em下。

步骤5烧写

(1)下 载并安装SmartRF04 Flash Programmer这个软件

(2)电脑USB跟仿真器连接,仿真器跟芯片连接好后,提示安装驱动,自动安装好后即可以用了。

(3)打开chipcon下的SmartRF04 Flash Programer,设置如下:

注意用System-on-Chip => Flash iage选择刚才编译好的app.hex文件 => 点击Read IEEE, 然后Write IEEE => 勾选Retain IEEE address when reprogramming => Action中选择第二个Erase,program and v… =>最后点击Perform actions,出现Erase,program and verify OK。表示成功了,而且此时芯片上的一个小灯在不停的快速闪烁。

Ubuntu下将TinyOS移植到CC2430芯片相关推荐

  1. ubuntu下移植QT基本流程

    配置tftp 配置tftp服务的步骤: 1.安装相关软件包:tftpd(服务端),tftp(客户端),xinetd sudo apt-get install tftpd tftp xinetd 2.建 ...

  2. openocd调试Linux内核,Ubuntu下配置OpenOCD+FT2232

    Ubuntu下配置OpenOCD+FT2232 [1]确认调试器方案 将调试器插到电脑上,lsusb看一下: Bus 003 Device 009: ID 1457:5118 First Intern ...

  3. linux 搭建开发stm32 stlink,Ubuntu下搭建stm32+stlink的开发环境

    Ubuntu下搭建stm32+stlink的开发环境 热度 3已有 15960 次阅读2014-8-19 21:09 | 上周因为忙于别的事情,很久没切到ubuntu下了,这周继续弄了弄. 弄到了一些 ...

  4. linux下qt多个程序打包,解决Ubuntu下使用linuxdeployqt打包Qt程序问题

    写了点Qt界面程序,然而发现很难移植到其他没有安装Qt环境的电脑上运行.查资料了解到,在windows上有windowsdeployqt程序,linux上有linuxdeployqt可以帮助我们快速打 ...

  5. 转:Ubuntu下ibus-sunpinyin的安装及翻页快捷键设置!

    在windows下,好多人都已经习惯了使用搜狗拼音,到ubuntu下,忽然没有极为顺手的输入法,实为郁闷,但是确实还没有for linux版本的搜狗使用,这是搜狗的商业策略,我们无法掌控,但是,如果你 ...

  6. ubuntu下安装minicom

    2019独角兽企业重金招聘Python工程师标准>>> 今天看了看嵌入式系统开发,结合之前在tinyos实验中做过的一些串口通信的实验,这里看到linux下也有相关的串口通信软件.所 ...

  7. 安卓linux交叉编译,Linux Ubuntu下用Android NDK 生成独立交叉编译链

    本文主要介绍使用Android NDK生成独立交叉编译链,然后使用独立交叉编译链编译Android程序 下载NDK 下载与自己操作系统相吻合的版本 下载地址 解压到安装目录(如~/myndk): ta ...

  8. 如何在Ubuntu下使用全民wifi?

    最近一直想在Ubuntu下进行开发,苦于公司给的电脑不能连接wifi,如是拿了一个全民wifi(19.9元),接在电脑上,作为无线的网卡,接入网络.因为Linux没能像window提供自动驱动,所以得 ...

  9. Ubuntu下如何获取usb相机的PID/VID并打开指定的相机

    项目需求控制和打开两个USB摄像头,并且根据相机的PID和VID来打开指定的相机,来区分主副相机,在Windows下可以通过AForge.Video.DirectShow库来实现,但是Ubuntu下没 ...

  10. ubuntu下安装Realtek usb无线网卡驱动(8821cu)

    写在前面:电脑内置无线网卡出了些小问题,尽管可以搜到网络但是信号很弱,这不能够啊,所以先买了一款tenda u9 usb无线网卡,奈何在ubuntu上无法自动安装驱动,并且官方并不支持其在ubuntu ...

最新文章

  1. scanf函数详解与缓冲区
  2. Go -- 多个go文件包名都是main
  3. 作为大龄开发人员,敢问路在何方?
  4. linux中刻录iso到光盘
  5. .NET7的七项重大改进!
  6. 如何初始化局部变量c语言_重要的事情说三遍:局部变量一定要初始化!你做到了吗?...
  7. [七月挑选]Tomcat使用命令行启动之指定jdk版本
  8. css网页favicon_自用代码css获取任意网址的/favicon.ico的方法教程
  9. Groovy 转换JSON和生产JSON
  10. DockerKubernetes ❀ Kubernetes集群 - DashBoard服务(Web管理)安装部署
  11. 23个热门python爬虫项目,爬虫仍需谨慎,牢饭不是很香!!!
  12. 谈腾讯地图web api如何实现类似百度地图内置的城市切换、关键字输入提示功能
  13. 使用Matlab将多个图形Figure文件合并
  14. 计算机机房灭火器种类,常见灭火器的种类、适用范围以及使用方法
  15. 30天自制操作系统(day1)
  16. 搭建个人网站--域名解析(DNS)
  17. postgresql - SQL查询某一天内的记录
  18. 交换机与路由器技术-08-路由器上配置DHCP
  19. 《计算之魂》思考题4.3
  20. CF 115B. Lawnmower

热门文章

  1. 怎么用软件测试相似相似度,文档相似性检测工具
  2. 国内装备制造业为什么需要项目管理
  3. 仿钉钉流程设计(.net工作流)之普通流程模板配置
  4. 万兆交换机用什么网线_千兆网线和万兆网线有什么区别
  5. 逻辑教育大厂必备IOS面试突击班
  6. STM32外设驱动库分析与实现
  7. 内存超频时序怎么调_一个傻瓜式内存超频教程
  8. ubuntu磁盘分区与挂载
  9. 基于java的OA系统设计与实现
  10. vue使用百度OCR拍照识别图片信息