你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

浅尝mbed os beta

[复制链接]
watershade 发布时间:2015-9-22 22:00
本帖最后由 watershade 于 2015-9-23 21:34 编辑 $ g9 ?" \  k% v8 b" L
" ]/ x4 [( p8 b! u; G
本意外mbed os会在八月中旬发布,作为一个喜欢新鲜的人,自然焦灼等待。结果等到九月初,也没发现mbed os beta的发布。可是上周无意发现mbed os发布了,而且官网首页也换了。网址由mbed.org更换成mbed.com。之前不支持中文,现在由中英文两个版本,(心里欢喜,这次终于被公平对待了)。
% D  W2 q6 f& K: g* P
( @' ]8 o' I' K% o. O* y  v8 I4 r' y首页提供一个入门教程的链接。现在将要素写下来。' P' @: A4 D7 p" S% a3 r1 y
首先要说明mbed os只是mbed生态系统很小的一环,mbed还包含mbed客户端,mbed服务器(由mbed提供),mbed tls和其它工具。当然还包含硬件和硬件平台。
+ L" X% z/ p* ^3 \# {' C# y大致的树形关系应该是这样(自己的理解):
* q' d. _& Z: i% S! U                                 mbed服务器(云端)1 e. Z( y% B- k! g# l
       ______________________|______________________
4 k/ q, a$ D+ B, {  X       |                        |               |            |                     |
+ [3 M* K9 {& }7 S$ X5 C7 B0 h) hmbed客户端       ...其他客户端...                            mbed客户端
8 q0 e( l5 K/ J8 o                                                             ______________|____________9 x" r# b  t& S/ k. _! i! Y
                                                             |                  |                         |
* l4 I7 \) p& f2 ]+ n$ n$ o                                                        mbed os设备                       mbed os设备
5 p3 T: z" t$ p# X! c& `& x* ^2 a+ j                                               _________|_________6 C" w* [5 t; b- y. o/ i  q
                                               |       |                |      |2 P# `) Q: Z( x" l# R8 k6 r
                                       传感器    执行器      指示与显示设备等
  C4 Z- O. y- g  A/ F* a【可能错了】2 D% o" C" Q( h9 j3 Q+ E

- |7 D* P" I6 o0 J2 z0 D2 j( S6 r, @) G6 k1 ], n0 A

. q& q' }6 Y+ r# b, X7 E* ~) Z$ N/ o5 s
工具用于设置和编译等,LTS是安全通讯,也就是设备之间通讯互联的基础。在不同设备之间支持多种通讯协议。由许多协议一个外行还从没听过。7 ?7 i8 W2 L" y
. ~; c8 ~( G! ~! e% c) n, V4 Y
- _+ n, o$ z  |1 T; s' a& b
- o' V6 u, ~9 T0 K8 W
step 1: 安装yotta1 f/ ~/ @5 O( r1 u4 \. H
yotta就是上述所谓的工具中对mbed os最重要的工具,相当于ide和项目和模块管理系统。官方叫做软件模块系统。
$ J% g' P0 X4 K4 l  Xhttp://www.mbed.com/zh-cn/development/software/tools/yotta// _$ b& V& O. d3 S  ]1 p; p  Z
这个是全新的体验,可以在三个主流系统上使用。在windows上听麻烦,我安装了一下,但是不知道是那个地方配置的问题,没有build成功。而且windows上不支持native编译,只能交叉编译。不过无所谓吧。之后慢慢解决出现的问题(目前遇到的问题是ninja error,环境变量应该配置没有问题,用yotta clean也没解决)。; \) I+ I  s; P% O* N
安装请参考http://yottadocs.mbed.com/#installing& L2 y# |, H1 j; W
9 K$ i8 d! d+ F* Y
我最终实在linux上用的,没办法木有mac。
, t( D9 s& ?1 ?. A9 T2 W1 istep 2: 点灯-初始mbed os. J" l; D# u/ ^( m
在还没有对mbed os有一个清晰的认识之前,只能照葫芦画瓢。$ I3 B2 x& i  p( B+ I" f
官方网址:
; e0 @, `* ~- uhttp://docs.mbed.com/docs/gettin ... FirstProjectmbedOS/2 [. [  X1 ^/ o* |, W+ K$ |
. P1 k. z  m$ W1 n' n2 g5 f
需要说明的有两点。一点是在yotta target (你的平台,比如stm32f429i-disco-gcc)。之后接着yotta target是没有设备的,提示missing。3 n. G: W3 w4 [/ J
需要执行玩install mbed-drivers之后,在执行就有了设备。6 t) ^# M+ ], A4 B
另外一点是,支持的设备目前不限于官方提供的几个。search到的设备都应该可以。没有的设备需要自己修改和添加。- V- I6 e1 P: S( T3 X! ?
当前支持的有:$ d  ?2 W+ \- _
test-target-dep 0.0.2: Test Target Test Dependencies
; K" b9 R  y- L% O8 p( W. J7 i" {2 w; e! _frdm-k64f-gcc 0.0.24: Official mbed build target for the mbed frdm-k64f development board.  V! Y+ |  A" \" L# V; }
frdm-k64f-armcc 0.0.16: Official mbed build target for the mbed frdm-k64f development board, using the armcc toolchain.
# j& Q, q7 O: W# [) J! L/ L4 |bbc-microbit-classic-gcc 0.1.3: Official mbed build target for the mbed nrf51822 development board, using the armgcc toolchain.
1 J( \- U. s9 }7 m1 U' Vst-nucleo-f401re-gcc 0.1.0: Official mbed build target for the mbed st-nucleo-f401re development board.
, Y4 j& `# Y5 T7 p3 a/ L% pbbc-microbit-classic-armcc 0.1.0: Official mbed build target for the microbit, using the armcc toolchain.
4 S( B8 e9 o) \: @& s# ^2 q  n6 hstm32f429i-disco-gcc 0.0.5: Official mbed build target for the mbed st-nucleo-f429zi development board.
: S% a0 d" Y5 @3 r4 y1 }0 Bnordic-nrf51822-16k-gcc 0.0.9: Official mbed build target for the mbed nrf51822 development board, using the armgcc toolchain.5 F* m  `  u. i( t# o8 S
nordic-nrf51822-32k-gcc 0.0.6: Official mbed build target for the nrf51822 32KB chip.
3 P5 o% q8 ~  p" {st-stm32f439zi-gcc 0.0.3: Official mbed build target for the st stm32f439zi microcontroller.8 X/ r- k( c4 A9 o+ i' O
nordic-nrf51822-16k-armcc 0.0.8: Official mbed build target for the mbed nrf51822 development board, using the armcc toolchain.
) G5 ]- n6 `- g8 x7 x* n5 sstm32f411re-nucleo-gcc 0.0.1: Official mbed build target for the mbed st-nucleo-f411re development board./ J$ [! Z3 G2 [1 W
bbc-microbit-classic-gcc-nosd 0.1.2: Official mbed build target for the BBC micro:bit, using the armgcc toolchain, without Softdevice.& z3 n' b: {6 {( L1 A2 a
nordic-nrf51822-32k-armcc 0.0.8: Official mbed build target for the mbed nrf51822 development board, using the armcc toolchain.
" O) k' M( v" s7 P6 A4 Ibbc-microbit-classic-armcc-nosd 0.1.0: Official mbed build target for the microbit, using the armcc toolchain, without soft device.
" g- _  x) [$ cx86-linux-native 0.0.6: Build target for programs compiled natively for Linux" U6 j1 Q' p" s" @; R+ p
x86-osx-native 0.0.7: Build target for programs compiled natively for OS X6 V5 l) [- |' a1 W% Q5 ]; [
mbed-gcc 0.0.14: base mbed build target for gcc toolchain! v, M( F. I5 G4 ]$ i
mbed-armcc 0.0.16: Official mbed base target description for compiling with the ARMCC compiler
8 e- x3 M8 U0 D9 Z! Z& j, Q, Jlibc 0.0.3: libc shim module: pulls in the platform libc when compiling for nostdlib targets) Q5 f$ C  n8 n0 l2 |2 I
ublox-odin-w2-gcc 0.0.3: Official mbed build target for the ublox odin-w2 module.
$ u. U+ E! a# M2 b' wublox-odin-w2-evk-gcc 0.0.0: Official mbed build target for the mbed ublox c029 evkelopment board.( y4 O: ^. Q. ?
seeedtinyble-gcc 0.0.2: Official mbed build target for the nrf51822 16KB chip.( G4 g7 e4 Q% s; r/ s6 v
mkit-gcc 0.0.1: Official mbed build target for the nrf51822 16KB chip.5 B* M0 d# F2 }% i. \* f+ I4 x
ublox-c029-gcc 0.0.0: Official mbed build target for the mbed ublox c029 development board.
6 F' y/ ^1 D& _$ {8 smkit-classic-armcc 0.0.1: mbed classic build target for nrf51822 mkit.3 q  z* v3 s( `
lex-test-gcc 0.0.1: lex's first target to test/ P9 y* i2 [4 _. ?% ^7 p

6 E# E  o+ w4 z4 @3 V/ c2 o此外这一段还提供了一段简单的代码,代码是cpp编写的。有一个域名空间minar很重要。之后要关注一下。语法和之前的mbed差不多。openocd还没用过。目前准备参照http://github.com/texane/stlink ... torial/tutorial.pdf来执行stlink的驱动。
8 |6 j9 p5 D6 F; J5 D9 H) K7 G此外还需要在linux上安装串口终端,不放试试minicom,ubuntu上安装方便:sudo apt-get install minicom
8 m' `! \% i0 o* f3 q6 x/ W在编译成功之后,需要讲代码复制到mbed上去,但是问题是stlink又有原生的linux驱动,这是一个大问题。在后续后详细介绍。但是,一种讨巧的办法是装虚拟机。这样就可以方便编译了。5 P' H1 p4 d. e  X
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 {; @. c( c: \1 u, `+ v+ @2015.09.23
3 |" c0 X) |1 [; Q  ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||2 r; u1 T& Z, b7 x1 E! h  d
今天再补充一下mbed os的文件结构,这个是很重要的。% \. N8 T  \8 v7 M) e
官方的文档:http://www.mbed.com/zh-cn/development/software/tools/yotta/; M# |+ x0 g$ p- s. Z
文档结构,用下图:# L# N0 G2 D2 k: `( M- R
yotta 模块或应用程序的结构
: L6 f  [7 n/ l9 c
应用程序和可重用的 yotta 模块均有类似的结构:
  • 一个“module.json”文件。
  • 一个包含了要编译的源文件的“source”目录。
  • 一个与模块同名的头文件目录。
  • 一个“test”目录。
  • 一个总结模块 API 的“readme.md”文件。: u1 c, k" ^8 j! B" K  Y  G. c2 T
mymodule  |_ module.json  |_ source  |  |_ a_file.cpp  |  \_ another.cpp  |_ mymodule  |  |_ a_header.h  |  \_ some_other_header.h  |_ test  |  |_some_test.c  |  \_subdir  |    |_supporting_file.c  |    \_main.c  \_ readme.md
& H  `( W$ k; A2 F* B3 \建议mbed的开发,要了解这个基础知识。/ e1 q+ \: }( d; r1 W* Y

, v9 I+ _: j1 C2 g& i4 V- B# V  P. `/ a" N1 {
目前只做到这里,后续希望慢慢更新
9 j. i) p4 d) A9 ~* L# w% Z
9 A) p* P; S4 h5 @  k9 k& v  U/ a) k! _" U! u
收藏 评论12 发布时间:2015-9-22 22:00

举报

12个回答
watershade 回答时间:2015-9-22 22:03:18
本帖最后由 watershade 于 2015-9-22 22:05 编辑
5 [& y0 h$ l9 z  c9 F
' s- G5 `& [. Y需要说明的是我对mbed客户端的理解可能错误了,因为官方介绍的有些看不懂。官方的意思应该是说mbed客户端是和mbed os是同一级别的,是为了方便设备制造上考虑的。总之我前面的描述有问题。$ R  W# w5 G: V5 ~' g
http://www.mbed.com/zh-cn/development/software/mbed-client/
watershade 回答时间:2015-9-23 21:19:12
昨天只是简单实验了一下LED的山东,今天本想试一下串口,结果F429板子坏了。插上USB口U3芯片瞬间高烧,原因不明。
yanhaijian 回答时间:2015-9-24 13:29:48
呵呵,操作系统太多了。
watershade 回答时间:2015-9-24 20:53:39
yanhaijian 发表于 2015-9-24 13:29: }6 [" H: n% H" a- ~3 t$ h. P
呵呵,操作系统太多了。

& h, @& d; }& E今年iot系统不是几大厂商在推吗,尝尝鲜。看看到底对开发有什么帮助。
yanhaijian 回答时间:2015-9-25 08:44:38
watershade 发表于 2015-9-24 20:53
& Q* @; Q# F$ H) r今年iot系统不是几大厂商在推吗,尝尝鲜。看看到底对开发有什么帮助。
/ c+ O' I$ K& i
现在只有推出可裁剪的桌面系统(非操作系统)才有大量用户。
Tension 回答时间:2015-9-25 17:59:17
楼主神速,我还没有看懂它的架构
watershade 回答时间:2015-9-25 22:38:19
yanhaijian 发表于 2015-9-25 08:44
' R4 _- L. k  \现在只有推出可裁剪的桌面系统(非操作系统)才有大量用户。

7 `* b& i2 m6 y1 Y7 w2 e尝试了一下,感觉还是有些难度。桌面系统,这个我还真没有概念,这是什么?阁下赐教。
watershade 回答时间:2015-9-25 22:39:19
Tension 发表于 2015-9-25 17:591 C( b7 W1 `* X4 B& T
楼主神速,我还没有看懂它的架构

8 w  k/ W$ @9 ^其实,就看看,架构我呀还没理顺。慢慢了解。一起学习交流呀。话说现在支持的板子不多。
wyxy163@126.com 回答时间:2015-9-29 19:02:03
提示: 作者被禁止或删除 内容自动屏蔽
HankChiang 回答时间:2015-10-8 16:27:54
本帖最后由 HankChiang 于 2015-10-8 17:07 编辑
/ C$ a2 M$ p/ M, j9 ]
: S: N  e. w, @- v& h( O可以請樓主分享一下yt build之後的完整log嗎?
/ t) o% T. {# Z' T+ M/ w# l  N8 j
( ~: A7 k# r3 `2 _, W9 a5 ?小弟下載了http://github.com/ARMmbed/helloyotta
( o& e: V3 m2 D' w  Q) W. t6 R# t- Y然後試著yt build# F3 t4 C# t0 W* s. S9 ?0 s7 P

9 Z9 P! }8 J2 i  Z7 b0 finfo: generate for target: frdm-k64f-gcc 0.1.3 at /tmp/aaa/helloyotta/yotta_targets/frdm-k64f-gcc
# Z+ F7 z  n4 b; }4 QGCC version is: 4.8.3( f* D/ l  G' j3 m, [! ]' }
-- Configuring done
- k( b2 E/ S" S8 g-- Generating done
+ ^; Y; J7 h  ]" }-- Build files have been written to: /tmp/aaa/helloyotta/build/frdm-k64f-gcc0 m' l+ V* J6 Q
log: warning: no configuration file specified, using default values
+ K! h4 f' e( C: k! [/ olog: ninja version 0.1.3 initializing, e1 t9 t. L5 Y- _7 P
log: magic group: gid=0 (root)
5 a1 V+ V& N* u% {log: entering main loop* F# |  @6 J6 F2 n' B! e- G' }) {& J
log: generating initial pid array..8 p$ D, ]& f9 v1 q
log: now monitoring process activity, a2 ~2 Q/ @8 E& t2 I

6 P( ]  V) _2 S! `4 i- _就卡在上面這行不會動了
6 M* o% B. k. Y! l+ m請教一下這是什麼問題呢?----
( E% }  T7 f# x5 u更新一下最新進度
7 L. Y9 |  [# E- n  [6 [先執行yt clean之後就build的出來了. ]) n" t7 a' D7 x
應該是測試時把環境搞亂了
- k- x) O1 b, Y: _  ^) u在此建議大家build之前先執行一次yt clean
" a0 W) Y, J8 k$ g/ c+ Z
watershade 回答时间:2015-10-9 12:19:59
HankChiang 发表于 2015-10-8 16:27
5 I0 D" p, a& @5 Z* C可以請樓主分享一下yt build之後的完整log嗎?0 ]  H% r$ H. `* S

' ?8 `% l$ \% |3 l1 m1 d) B小弟下載了http://github.com/ARMmbed/helloyotta
8 a1 _& f+ k- Z3 N' ]& K( f& M
发现官方search出来的F401和411都编译不成功,不论linux还是windows上。但是F429可以
liuxing4585 回答时间:2015-10-9 12:57:56
顶顶更健康!

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版