初试 uTenux
申请的的开发套件到目前还没到手,看到网友们都开始动手干了,我也是按捺不住了,所以就先在悠龙公司的主页下载了uTenux_V1.5.00r160.zip,打算看看,先了解一下。
下面是文件目录表:
└─uTenux_OpenSource_Edition
├─image
│ ├─atmel
│ │ ├─at91sam3s4c
│ │ └─at91sam4s16c
│ ├─freescale
│ │ └─mk60dn512xxx10
│ ├─fujitsu
│ │ └─mb9bf506r
│ ├─infineon
│ │ └─xmc4500x144x1024
│ ├─nxp
│ │ ├─lpc1766
│ │ ├─lpc1788
│ │ └─lpc4088
│ ├─st
│ │ ├─stm32f103ze
│ │ ├─stm32f107vc
│ │ ├─stm32f207zg
│ │ ├─stm32f303vc
│ │ ├─stm32f407ig
│ │ ├─stm32f407vg
│ │ └─stm32f407zg
│ └─ti
│ ├─lm3s9b96
│ └─lm4f232h5qd
├─manual
│ └─uTenux_Kernel_BasisLecture
├─sample
│ ├─common
│ │ ├─01.task
│ │ ├─02.semaphore
│ │ ├─03.eventflag
│ │ ├─04.mailbox
│ │ ├─05.mutex
│ │ ├─06.messbuf
│ │ ├─07.rendport
│ │ ├─08.mempoolf
│ │ ├─09.mempoolv
│ │ ├─10.time
│ │ ├─11.cycle
│ │ ├─12.alarm
│ │ └─14.sysinfo
│ └─sysdepend
│ └─armv7_m
│ └─13.int
├─source
│ └─uTenux
│ ├─.externalToolBuilders
│ ├─.settings
│ ├─app
│ │ ├─build
│ │ │ ├─app_at91sam3
│ │ │ ├─app_at91sam4
│ │ │ ├─app_lm3s
│ │ │ ├─app_lm4f
│ │ │ ├─app_lpc17
│ │ │ ├─app_lpc178
│ │ │ ├─app_lpc40
│ │ │ ├─app_mb9bf5
│ │ │ ├─app_mk60d
│ │ │ ├─app_stm32f1
│ │ │ ├─app_stm32f2
│ │ │ ├─app_stm32f3
│ │ │ ├─app_stm32f4
│ │ │ └─app_xmc4000
│ │ └─usermain
│ │ ├─build
│ │ │ ├─app_at91sam3
│ │ │ ├─app_at91sam4
│ │ │ ├─app_lm3s
│ │ │ ├─app_lm4f
│ │ │ ├─app_lpc17
│ │ │ ├─app_lpc178
│ │ │ ├─app_lpc40
│ │ │ ├─app_mb9bf5
│ │ │ ├─app_mk60d
│ │ │ ├─app_stm32f1
│ │ │ ├─app_stm32f2
│ │ │ ├─app_stm32f3
│ │ │ ├─app_stm32f4
│ │ │ └─app_xmc4000
│ │ └─src
│ ├─bin
│ │ ├─app_at91sam3
│ │ │ └─chip_at91sam3s4c
│ │ ├─app_at91sam4
│ │ │ └─chip_at91sam4s16c
│ │ ├─app_lm3s
│ │ │ └─chip_lm3s9b96
│ │ ├─app_lm4f
│ │ │ └─chip_lm4f232h5qd
│ │ ├─app_lpc17
│ │ │ └─chip_lpc1766
│ │ ├─app_lpc178
│ │ │ └─chip_lpc1788
│ │ ├─app_lpc40
│ │ │ └─chip_lpc4088
│ │ ├─app_mb9bf5
│ │ │ └─chip_mb9bf506r
│ │ ├─app_mk60d
│ │ │ └─chip_mk60dn512xxx10
│ │ ├─app_stm32f1
│ │ │ ├─chip_stm32f103ze
│ │ │ └─chip_stm32f107vc
│ │ ├─app_stm32f2
│ │ │ └─chip_stm32f207zg
│ │ ├─app_stm32f3
│ │ │ └─chip_stm32f303vc
│ │ ├─app_stm32f4
│ │ │ ├─chip_stm32f407ig
│ │ │ ├─chip_stm32f407vg
│ │ │ └─chip_stm32f407zg
│ │ └─app_xmc4000
│ │ └─chip_xmc4500x144x1024
│ ├─config
│ │ └─sysdepend
│ │ ├─app_at91sam3
│ │ │ └─chip_at91sam3s4c
│ │ ├─app_at91sam4
│ │ │ └─chip_at91sam4s16c
│ │ ├─app_lm3s
│ │ │ └─chip_lm3s9b96
│ │ ├─app_lm4f
│ │ │ └─chip_lm4f232h5qd
│ │ ├─app_lpc17
│ │ │ └─chip_lpc1766
│ │ ├─app_lpc178
│ │ │ └─chip_lpc1788
│ │ ├─app_lpc40
│ │ │ └─chip_lpc4088
│ │ ├─app_mb9bf5
│ │ │ └─chip_mb9bf506r
│ │ ├─app_mk60d
│ │ │ └─chip_mk60dn512xxx10
│ │ ├─app_stm32f1
│ │ │ ├─chip_stm32f103ze
│ │ │ └─chip_stm32f107vc
│ │ ├─app_stm32f2
│ │ │ └─chip_stm32f207zg
│ │ ├─app_stm32f3
│ │ │ └─chip_stm32f303vc
│ │ ├─app_stm32f4
│ │ │ ├─chip_stm32f407ig
│ │ │ ├─chip_stm32f407vg
│ │ │ └─chip_stm32f407zg
│ │ └─app_xmc4000
│ │ └─chip_xmc4500x144x1024
│ ├─etc
│ │ └─sysdepend
│ │ ├─app_at91sam3
│ │ ├─app_at91sam4
│ │ ├─app_lm3s
│ │ ├─app_lm4f
│ │ ├─app_lpc17
│ │ ├─app_lpc178
│ │ ├─app_lpc40
│ │ ├─app_mb9bf5
│ │ ├─app_mk60d
│ │ ├─app_stm32f1
│ │ ├─app_stm32f2
│ │ ├─app_stm32f3
│ │ ├─app_stm32f4
│ │ └─app_xmc4000
│ ├─include
│ │ ├─cpu
│ │ │ └─sysdepend
│ │ │ ├─armv7e_m
│ │ │ └─armv7_m
│ │ ├─dev
│ │ │ └─sysdepend
│ │ │ ├─app_at91sam3
│ │ │ ├─app_at91sam4
│ │ │ ├─app_lm3s
│ │ │ ├─app_lm4f
│ │ │ ├─app_lpc17
│ │ │ ├─app_lpc178
│ │ │ ├─app_lpc40
│ │ │ ├─app_mb9bf5
│ │ │ ├─app_mk60d
│ │ │ ├─app_stm32f1
│ │ │ ├─app_stm32f2
│ │ │ ├─app_stm32f3
│ │ │ ├─app_stm32f4
│ │ │ └─app_xmc4000
│ │ ├─sbs
│ │ ├─tk
│ │ │ └─sysdepend
│ │ │ ├─armv7e_m
│ │ │ └─armv7_m
│ │ └─tm
│ ├─kernel
│ │ ├─build
│ │ │ ├─app_at91sam3
│ │ │ ├─app_at91sam4
│ │ │ ├─app_lm3s
│ │ │ ├─app_lm4f
│ │ │ ├─app_lpc17
│ │ │ ├─app_lpc178
│ │ │ ├─app_lpc40
│ │ │ ├─app_mb9bf5
│ │ │ ├─app_mk60d
│ │ │ ├─app_stm32f1
│ │ │ ├─app_stm32f2
│ │ │ ├─app_stm32f3
│ │ │ ├─app_stm32f4
│ │ │ └─app_xmc4000
│ │ └─src
│ │ └─sysdepend
│ │ ├─armv7e_m
│ │ │ ├─acc
│ │ │ ├─gcc
│ │ │ └─icc
│ │ └─armv7_m
│ │ ├─acc
│ │ ├─gcc
│ │ └─icc
│ ├─lib
│ │ ├─build
│ │ │ ├─app_at91sam3
│ │ │ ├─app_at91sam4
│ │ │ ├─app_lm3s
│ │ │ ├─app_lm4f
│ │ │ ├─app_lpc17
│ │ │ ├─app_lpc178
│ │ │ ├─app_lpc40
│ │ │ ├─app_mb9bf5
│ │ │ ├─app_mk60d
│ │ │ ├─app_stm32f1
│ │ │ ├─app_stm32f2
│ │ │ ├─app_stm32f3
│ │ │ ├─app_stm32f4
│ │ │ └─app_xmc4000
│ │ ├─libcpu
│ │ │ ├─build
│ │ │ │ ├─at91sam3
│ │ │ │ ├─at91sam4
│ │ │ │ ├─lm3s
│ │ │ │ ├─lm4f
│ │ │ │ ├─lpc17
│ │ │ │ ├─lpc178
│ │ │ │ ├─lpc40
│ │ │ │ ├─mb9bf5
│ │ │ │ ├─mk60d
│ │ │ │ ├─stm32f1
│ │ │ │ ├─stm32f2
│ │ │ │ ├─stm32f3
│ │ │ │ ├─stm32f4
│ │ │ │ └─xmc4000
│ │ │ └─src
│ │ │ └─sysdepend
│ │ │ ├─armv6_m
│ │ │ │ ├─acc
│ │ │ │ ├─gcc
│ │ │ │ └─icc
│ │ │ ├─armv7e_m
│ │ │ │ ├─acc
│ │ │ │ ├─gcc
│ │ │ │ └─icc
│ │ │ └─armv7_m
│ │ │ ├─acc
│ │ │ ├─gcc
│ │ │ └─icc
│ │ ├─libdev
│ │ │ ├─build
│ │ │ │ ├─app_at91sam3
│ │ │ │ ├─app_at91sam4
│ │ │ │ ├─app_lm3s
│ │ │ │ ├─app_lm4f
│ │ │ │ ├─app_lpc17
│ │ │ │ ├─app_lpc178
│ │ │ │ ├─app_lpc40
│ │ │ │ ├─app_mb9bf5
│ │ │ │ ├─app_mk60d
│ │ │ │ ├─app_stm32f1
│ │ │ │ ├─app_stm32f2
│ │ │ │ ├─app_stm32f3
│ │ │ │ ├─app_stm32f4
│ │ │ │ └─app_xmc4000
│ │ │ └─src
│ │ │ └─sysdepend
│ │ │ ├─app_at91sam3
│ │ │ ├─app_at91sam4
│ │ │ ├─app_lm3s
│ │ │ ├─app_lm4f
│ │ │ ├─app_lpc17
│ │ │ ├─app_lpc178
│ │ │ ├─app_lpc40
│ │ │ ├─app_mb9bf5
│ │ │ ├─app_mk60d
│ │ │ ├─app_stm32f1
│ │ │ ├─app_stm32f2
│ │ │ ├─app_stm32f3
│ │ │ ├─app_stm32f4
│ │ │ └─app_xmc4000
│ │ └─libtm
│ │ ├─build
│ │ │ ├─app_at91sam3
│ │ │ ├─app_at91sam4
│ │ │ ├─app_lm3s
│ │ │ ├─app_lm4f
│ │ │ ├─app_lpc17
│ │ │ ├─app_lpc178
│ │ │ ├─app_lpc40
│ │ │ ├─app_mb9bf5
│ │ │ ├─app_mk60d
│ │ │ ├─app_stm32f1
│ │ │ ├─app_stm32f2
│ │ │ ├─app_stm32f3
│ │ │ ├─app_stm32f4
│ │ │ └─app_xmc4000
│ │ └─src
│ ├─lic
│ └─subass
│ └─build
│ ├─app_at91sam3
│ ├─app_at91sam4
│ ├─app_lm3s
│ ├─app_lm4f
│ ├─app_lpc17
│ ├─app_lpc178
│ ├─app_lpc40
│ ├─app_mb9bf5
│ ├─app_mk60d
│ ├─app_stm32f1
│ ├─app_stm32f2
│ ├─app_stm32f3
│ ├─app_stm32f4
│ └─app_xmc4000
└─support
我们真正要用到的只有两个文件夹:sample和source。其中Sameple下由两个文件夹,主要是一些应用案例。source中是uTenux的内核文件和工程模板,以及应用库。除了这个个文件夹,我们还应该看一下manual中的相关知道手册,这些手册都uTenux的移植和架构讲的非常详细。
下面就我这次将uTenux移植到STM32F103ZE做一个详细的讲解。
1、刚才说到其中的source中是uTenux的内核文件和模板及一些应用库,所以我们将这部分单独的拿出来放到自己将要用的一个文件目录,以后这个就是我们的模板了。
2、我们以..\sample\common\01.task为例Step to Step的学习。
首先,我们将01.task目录下的四个文件复制到1中所说的那个目录下的..\source\uTenux\app\usermain\src中替换原有文件。
3、做完以上工作后就可以打开..\source\uTenux\bin\app_stm32f1\workspace.uvmpw在如图中的目录添加TaskSample.c文件。

4、做好以上工作就可以编译了,编译过后通过后由J-Link下载程序至STM32开发板。然后用USB-串口的线连接PC机和STM32F103的UART1(注意硬件连接不能出问题)。下面就可以用串口软件看实验结果了。我用的串口软件是putty,打开putty,设置好对应的参数后(波特率115200),复位STM32F103就可以在Putty中看到实验结果如图所示:
以上便是我对uTenux的初识。谢谢您的阅读,如有不到之处,望您指教。
初试 uTenux的更多相关文章
- caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题
之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...
- 【uTenux】学习一个嵌入式操作系统-uTenux
[这个是汇总] 最近有点时间,参加了EEPW论坛和悠龙咨询组织的一个嵌入式操作系统uTenux试用活动.本来想借助这个活动提供的开发板做一个小项目,奈何OS使用功底太次.于是,这个活动被我降低到了学习 ...
- 初试Nodejs——使用keystonejs创建博客网站2(修改模板)
上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...
- 项目中初试PHP单元测试
只能叫初试,前面虽然做了一些PHPUnit与团队所用框架的整合,但在整个团队还没有人可以主动推动这个事情,而作为Leader最重要的一种能力应该是"让正确的事情发生",所以今天开始 ...
- VPS -Digital Ocean -初试以及VPN的搭建
首先恭喜你找到这篇博客,它会带你走出困境. 题外话(请忽略):一直以来想搞一个VPS,终于在自己的刺激下试了一下Digital Ocean,还没有使用很长时间不做太多评论,唯一给我的感觉是各种操作还算 ...
- 初试微信小程序
2016年11月3日,微信小程序终于公测了,大家可以正式开发了.早在这之前,应公司要求,和同事就早早的试了一下微信小程序的开发,特此记录一下: 微信官方小程序文档:https://mp.weixin. ...
- 【uTenux实验】写在开始实验之前
1.使用的uTenux内核代码:http://www.uloong.cc/cn/download/uTenux_V1.6.00r180.zip 2.uTenux的特性: 1.微内核 2.开放源码.完 ...
- 【uTenux实验】任务管理
任务就是一个无限循环.uTenux提供的任务管理功能是很强大的,包括建立和删除一个任务,启动或退出任务,取消一个任务的启动请求,改变任务的优先级和査询任务状态,使任务进人睡眠状态和唤醒状态,取消唤醒请 ...
- 【uTenux实验】信号量
信号量(semaphore)是一个用来指示可用的资源并将可用资源的数量以数值的形式表示出来的对象.当使用一组资源时,信号量用来实现互斥控制和同步.uTenux提供了信号量出来的API,可以很方便地使用 ...
随机推荐
- Open quote is expected for attribute "property" associated with an element type "result".错误
java Mybatis 框架下的项目 报 Open quote is expected for attribute "property" associated with a ...
- mongodb子文档查询
--子文档分页 -- 测试数据 db.childTests.insert({ "_id" : 1, "item" : "ABC", &quo ...
- EBS fnd_global.apps_initialize
原型:fnd_global.apps_initialize(user_ID, Responsibility_id ...
- 如何设置DB2I(SPUFI)来正常工作
首先确定你现在所使用的登录proc,确保有权限可以在对应的PDS内新建member,可以在s.st里面找userid对应的job,然后去serach using,基本可以找到对应的dataset 用t ...
- knockout之各种数据绑定方法:text、attr、visible、html、css、style绑定
http://knockoutjs.com/documentation/attr-binding.html(Knockout官网文档) 1.text绑定 目的:text 绑定到DOM元素上,使得该元素 ...
- 【NOIP模拟赛】秦时明月
秦时明月 (sword.cpp/c/pas) [问题描述] 卫庄与盖聂又要论剑了,因为渊虹和鲨齿都是天下名剑,论剑容易互相损伤,太过可惜,于是两位换了两把木剑.因为木剑质地不匀,剑的每一段都有一个 ...
- OpenMP的调度
schedule(static, size) 这是静态调度,如果没有设置size, 默认是根据任务书来决定, 比如我电脑是8核,有26个任务,那么分配后结果是4 4 3 3 3 3 3 3. 因为先分 ...
- Linux/Unix笔记本
Linux介绍 Linux入门——个人感想 Google怎么用linux 初入Linux Windows XP硬盘安装Ubuntu 12.04双系统图文详解 实例讲解虚拟机3种网络模式(桥接.nat. ...
- Asp.net的post提交方式
//建立WebRequest对象,url目标地址HttpWebRequest req =(HttpWebRequest)WebRequest.Create(url); //将LoginInfo转换为b ...
- 原生js轮播以及setTimeout和setInterval的理解
下面这个代码是从一个群下载下来的,为了帮助自己理解和学习现在贴出来,与初学者共勉. <!DOCTYPE html> <html> <head> <meta c ...