前言:

由于项目的原因,需要在LPC1788(STM32 cortex-M3)上面跑contiki。

之前没有涉及到contiki,不知其为何物。不过这个不是难事,做IT的,每每遇到新事物,都不会处理,习惯了从无到有的过程就好了。

开始老师说这个系统很好移植,于是想在网上找现成的资料。无奈,关于contiki的资料少的可怜,contiki移植就更少了,有几篇也是互相copy而来的,连图片都没有改,呵呵。于是不得不自己动手,从头开始搞移植了。

操作系统:windowsXP

开发环境:MDK

目标板:LPC1788(cortex-M3 STM32)

移植系统:contiki

开发工具:J-Linker

在这里,先给出几个我认为比较好的链接,供大家学习研究contiki时使用。

1) Contiki大神Jelline的博客http://blog.chinaunix.net/uid-9112803-id-2978041.html,相信大家都看过他写的关于contiki的学习资料,没说的,大神的文章,当然要借鉴学习的。

2) Contiki大神徐凯的博客http://blog.csdn.net/xukai871105/article/category/1129569,这篇也是比较好的,我有些东西也是参考他的。

一  contiki简介:

“Contiki 是一个小型的,开源的,极易移植的多任务操作系统。它专门设计以适用于一系列的内存优先的网络系统,包括从8位电脑到微型控制器的嵌入系统。它的名字来自于托尔·海尔达尔的康提基号。Contiki只需几kilobyte的代码和几百字节的内存就能提供多任务环境和内建TCP/IP支持。”-------维基百科。

从维基百科这段介绍中可以得知contiki操作系统的三大特点——小型、开源、极易移植。和绝大多数开源的嵌入式操作系统不同,contiki非常容易移植,使用事件驱动和protothread机制,运行时占用的内存很小。究竟什么是时间驱动和protothread机制,本篇先不讲,在后面的文章中,我会给与讲解。

二 Contiki的源代码:

在线浏览http://contiki.git.sourceforge.net/git/gitweb.cgi?p=contiki/contiki;a=tree

GIT下载:git clone git://contiki.git.sourceforge.net/gitroot/contiki/contiki

最新的contiki系统已经更新到2.6版,我移植的就是2.6版本的contiki(跟上国际的脚步,呵呵)

三 开发环境的搭建:

1) Instant Contiki

InstantContiki是官方配好的开发环境,基于Ubuntu,在http://sourceforge.net/projects/contiki/下载InstantContiki,装在虚拟机VMware上。网上没什么资料,我自己也没有试过,虽然也有虚拟机。

2) IAR+J-Linker

网上的资料,大部分是基于IAR环境来开发的,移植起来相对简单。目标板也是ARM Cortex M3,如果你的也是这样的开发板,不妨试试用这个开发环境。不过在IAR做移植,要对Makefile进行大量修改。我自己安装了IAR,但是用了一周后,觉得很不舒服,而且修改什么的很不方便,所以放弃了,改用下面的方法。

3) MDK + J-Linker

这个就是我自己的方法了,用现成的MDK(keil for ARM) 环境+J-Linker移植contiki到我的LPC1788开发板上。由于之前网上都没有这样的资料,因此移植的难度可想而知。不过通过自己的努力,还是达到了预期的效果。

我这里有contiki大神Jelline的移植笔记的PDF板,大家可以百度Contiki学习笔记.pdf,如果找不到,可以发邮件告诉我(我的邮箱:hurryliu28@gmail.com),我会在邮箱中,把文档发给需要的你。
--------------------- 下面是原作者的相关信息
作者:hurry_liu
来源:CSDN
原文:https://blog.csdn.net/hurry_liu/article/details/11908127
版权声明:本文为博主原创文章,转载请附上博文链接!

【转】hurry_liu 大神STM32移植contiki入门之一:系统介绍和开发环境搭建的更多相关文章

  1. 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建

    大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建 大数据应用之Windows平台Hbase客户端Eclipse环境搭建-Java版 作者:张子良 版权所有,转载请注明出处 引子 ...

  2. 【JAVA零基础入门系列】Day1 开发环境搭建

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  3. Unix/Linux环境C编程入门教程(7) OPENBSDCCPP开发环境搭建

    1. 年发起了OpenBSD 专案,希望创造一个注重安全的操作系统. 2.创建一个虚拟机. 3.选择默认的workstation10.0 4.我们选择稍后安装操作系统. 5.我们选择FreeBSD64 ...

  4. Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建

    1. Kali linux是BT5的晋级版本,用于信息安全.基于Debian7内核.新建虚拟机. 2. 选择默认虚拟机 3. 选择稍后安装操作系统 4.选择Linux Debian7 64位,因为Ka ...

  5. Unix/Linux环境C编程入门教程(15) BT5开发环境搭建

    1. Backtrack 是处于世界领先地位的渗透测试和信息安全审计发行版本.有着上百种预先安装好的工具软件,并确定能完美运行,Backtrack5 提供了一个强大的渗透测试平台--从Web hack ...

  6. Eclipse + CDT + YAGARTO + J-Link,STM32开源开发环境搭建与调试

    Eclipse+CDT+YAGARTO+J-Li:开源开发环境搭建与调试:作者:Chongqing:邮箱:ycq.no1@163.com:文档版本:V1.0:发布日期:2014-08-04:前言:此文 ...

  7. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

  8. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

  9. 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建

    Xamarin.Android 入门之:Xamarin+vs2015 环境搭建   一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客 ...

随机推荐

  1. Linux服务器注意事项

    1.在Linux新建一个tomcat目录,执行里面的文件运行的时候 会出现权限不足的提示?解决办法:这是因为新建的文件夹,对于可执行脚本,必须先授权,进入bin目录后,执行命令  chmod 764 ...

  2. java resources 红叉 Cannot change version of project facet Dynamic Web Module to 2.5

    在使用maven导入项目的时候,markers提示Cannot change version of project facet Dynamic Web Module to 2.5,不能将工程转换为2. ...

  3. 【bzoj1036】树的统计[ZJOI2008]树链剖分+线段树

    题目传送门:1036: [ZJOI2008]树的统计Count 这道题是我第一次打树剖的板子,虽然代码有点长,但是“打起来很爽”,而且整道题只花了不到1.5h+,还是一遍过样例!一次提交AC!(难道前 ...

  4. HDFS数据完整性

    数据完整性 Hadoop用户肯定都希望系统在存储和处理数据时不会丢失或损坏任何数据.尽管磁盘或网络上的每个I/O操作不太可能将错误引入自己正在读/写的数据中,但是如果系统中需要处理的数据量大到Hado ...

  5. js运算符、关键字、保留字、转义字符

  6. Java中的算术运算符

    算术运算符主要用于进行基本的算术运算,如加法.减法.乘法.除法等. Java 中常用的算术运算符: 其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴 例1: 运行结果: ...

  7. js科里化

    科里化定义如下: 首先将一批函数转入一个函数(然后这个函数返回一个新的函数),这中形式就叫“做科里化”(currying) Function.prototype.curry = function(){ ...

  8. RK30SDK系统重启源码分析

    Linux系统重启的最底层函数是arch_reset,这是一个全局的函数指针变量,定义在 arch/arm/mach-rk30/include/mach/system.h中: extern void ...

  9. Ceph pg分裂流程及可行性分析

    转自:https://www.ustack.com/blog/ceph-pg-fenlie/ 1 pg分裂 Ceph作为一个scalable的分布式系统,集群规模会逐渐增大,为了保证数据分布的均匀性, ...

  10. C#中的线程(二)线程同步

    C#中的线程(二)线程同步   Keywords:C# 线程Source:http://www.albahari.com/threading/Author: Joe AlbahariTranslato ...