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

浅尝mbed os beta

[复制链接]
watershade 发布时间:2015-9-22 22:00
本帖最后由 watershade 于 2015-9-23 21:34 编辑 5 P7 e, E1 E1 d2 A) V9 T) j/ d

9 v& A# ^$ k# H* r  i本意外mbed os会在八月中旬发布,作为一个喜欢新鲜的人,自然焦灼等待。结果等到九月初,也没发现mbed os beta的发布。可是上周无意发现mbed os发布了,而且官网首页也换了。网址由mbed.org更换成mbed.com。之前不支持中文,现在由中英文两个版本,(心里欢喜,这次终于被公平对待了)。" L$ r( ?" E. h- I2 `

/ e. C% ]9 u% W' J# t( M! S# i首页提供一个入门教程的链接。现在将要素写下来。& I9 r$ G/ Z3 X$ b, u
首先要说明mbed os只是mbed生态系统很小的一环,mbed还包含mbed客户端,mbed服务器(由mbed提供),mbed tls和其它工具。当然还包含硬件和硬件平台。6 ]! v: ]) {  O% x9 N# ]5 j
大致的树形关系应该是这样(自己的理解):
3 R1 Q; J+ k3 t" a( H                                 mbed服务器(云端)
0 ?3 X9 c$ w% V: N8 S2 h       ______________________|______________________
& |+ W1 N* s( g2 @: b       |                        |               |            |                     |5 ]% l" _: k: F6 N* R
mbed客户端       ...其他客户端...                            mbed客户端+ w% ]% U# |/ ?
                                                             ______________|____________, Y0 C! h$ ~* Q5 C; u( t, r* G! W
                                                             |                  |                         |# |6 o5 K$ w0 k4 k
                                                        mbed os设备                       mbed os设备, S( k/ ~' I; ?! @
                                               _________|_________& {( ]; b$ y2 L4 ~: d" H
                                               |       |                |      |. M0 S0 X1 P- q# B2 c
                                       传感器    执行器      指示与显示设备等
$ s6 A4 Z$ t% o# i/ E/ _; [【可能错了】) f  Z! o, N) B; k& H
, O" z( Y8 g, P) e: p- K' t
) m1 s* `% z4 G  L. C
) D3 c: }7 f3 R! R$ N

; b4 A' T; `! z工具用于设置和编译等,LTS是安全通讯,也就是设备之间通讯互联的基础。在不同设备之间支持多种通讯协议。由许多协议一个外行还从没听过。
0 J' a0 \& B' t% E4 u: ]. @
1 v1 o- a* c2 \) h# D$ b
+ U( y# I1 ?' k- M4 X& w# {7 L- x! Q- J# W- J2 \
step 1: 安装yotta  g6 {, Q& \0 S3 ^0 z6 G( R* [$ J) N
yotta就是上述所谓的工具中对mbed os最重要的工具,相当于ide和项目和模块管理系统。官方叫做软件模块系统。
3 n) O( E3 ]& f: V4 {' d: whttp://www.mbed.com/zh-cn/development/software/tools/yotta/
* S3 c+ H% l5 B, i" a这个是全新的体验,可以在三个主流系统上使用。在windows上听麻烦,我安装了一下,但是不知道是那个地方配置的问题,没有build成功。而且windows上不支持native编译,只能交叉编译。不过无所谓吧。之后慢慢解决出现的问题(目前遇到的问题是ninja error,环境变量应该配置没有问题,用yotta clean也没解决)。
: u5 |$ Y3 H8 D# `* a  @安装请参考http://yottadocs.mbed.com/#installing6 C6 E/ A& K0 `: B
4 w/ J0 D! w# b0 d! b% z
我最终实在linux上用的,没办法木有mac。
; I1 L. e2 h+ @7 c% lstep 2: 点灯-初始mbed os
- `0 Z% }. p' O: Z" x4 C6 G9 @在还没有对mbed os有一个清晰的认识之前,只能照葫芦画瓢。# R1 t% m1 |: M4 t7 \; c
官方网址:
/ t, F5 n4 A  {% N  V6 ~http://docs.mbed.com/docs/gettin ... FirstProjectmbedOS/4 C3 _- N6 y0 l

) c  p0 ^2 ]5 W需要说明的有两点。一点是在yotta target (你的平台,比如stm32f429i-disco-gcc)。之后接着yotta target是没有设备的,提示missing。
7 g6 @. Q; f* |3 q7 `5 H; S- c3 g需要执行玩install mbed-drivers之后,在执行就有了设备。
) }  `9 q& \/ l另外一点是,支持的设备目前不限于官方提供的几个。search到的设备都应该可以。没有的设备需要自己修改和添加。
  r  K3 Z; j# n6 a当前支持的有:8 b2 w/ E. Q8 D4 K2 i6 `+ ~  b$ y
test-target-dep 0.0.2: Test Target Test Dependencies7 M0 z+ y" R$ D/ S4 [2 u1 P
frdm-k64f-gcc 0.0.24: Official mbed build target for the mbed frdm-k64f development board.
% K& k$ w: X* u9 k# {# O% x+ hfrdm-k64f-armcc 0.0.16: Official mbed build target for the mbed frdm-k64f development board, using the armcc toolchain.2 p- o7 v4 V/ p8 F4 I- q
bbc-microbit-classic-gcc 0.1.3: Official mbed build target for the mbed nrf51822 development board, using the armgcc toolchain.
  e; A  ~' C; ?6 X4 l$ ~st-nucleo-f401re-gcc 0.1.0: Official mbed build target for the mbed st-nucleo-f401re development board.
1 a" O8 }/ f/ E4 _# L9 w, N$ q7 j( ibbc-microbit-classic-armcc 0.1.0: Official mbed build target for the microbit, using the armcc toolchain.
' Z) r! r! P5 O$ R4 Istm32f429i-disco-gcc 0.0.5: Official mbed build target for the mbed st-nucleo-f429zi development board.  V0 Z! X  M- k' [' o" a% m6 T3 B
nordic-nrf51822-16k-gcc 0.0.9: Official mbed build target for the mbed nrf51822 development board, using the armgcc toolchain./ y- d* o6 O: L2 u3 E6 b
nordic-nrf51822-32k-gcc 0.0.6: Official mbed build target for the nrf51822 32KB chip.7 N6 y- _/ n! f: K0 f* m
st-stm32f439zi-gcc 0.0.3: Official mbed build target for the st stm32f439zi microcontroller.2 A% G9 {( y9 I$ D; N
nordic-nrf51822-16k-armcc 0.0.8: Official mbed build target for the mbed nrf51822 development board, using the armcc toolchain.7 F- Q# x3 I2 {8 z9 g6 n% R6 S
stm32f411re-nucleo-gcc 0.0.1: Official mbed build target for the mbed st-nucleo-f411re development board.
% D) m8 M  o+ q8 p9 Rbbc-microbit-classic-gcc-nosd 0.1.2: Official mbed build target for the BBC micro:bit, using the armgcc toolchain, without Softdevice.8 o" n' z- P7 G1 h# j. P
nordic-nrf51822-32k-armcc 0.0.8: Official mbed build target for the mbed nrf51822 development board, using the armcc toolchain., {/ D1 O& ~7 B* \  @7 v8 w5 b' ]
bbc-microbit-classic-armcc-nosd 0.1.0: Official mbed build target for the microbit, using the armcc toolchain, without soft device.
( U$ g- J  m- e' [x86-linux-native 0.0.6: Build target for programs compiled natively for Linux9 I+ H: S  M; X5 O4 B. ]
x86-osx-native 0.0.7: Build target for programs compiled natively for OS X* [( }. z) n& d- O- A" N( r
mbed-gcc 0.0.14: base mbed build target for gcc toolchain% _% E2 r/ @/ L& m. z: l$ l
mbed-armcc 0.0.16: Official mbed base target description for compiling with the ARMCC compiler3 @  k1 z3 J/ r  r
libc 0.0.3: libc shim module: pulls in the platform libc when compiling for nostdlib targets5 r+ ]; F! _6 z; r. u  {" ]
ublox-odin-w2-gcc 0.0.3: Official mbed build target for the ublox odin-w2 module.* O8 l- w0 t" q! i0 ]7 A8 G/ n/ y
ublox-odin-w2-evk-gcc 0.0.0: Official mbed build target for the mbed ublox c029 evkelopment board.) V8 C: H# \# H( D0 o5 a% x
seeedtinyble-gcc 0.0.2: Official mbed build target for the nrf51822 16KB chip.$ L% {2 h$ X1 W  m
mkit-gcc 0.0.1: Official mbed build target for the nrf51822 16KB chip.
+ T  n4 F& a; ]6 g( lublox-c029-gcc 0.0.0: Official mbed build target for the mbed ublox c029 development board.
6 _+ }' q. Z' v  I% zmkit-classic-armcc 0.0.1: mbed classic build target for nrf51822 mkit.
9 G+ m; \& t$ Alex-test-gcc 0.0.1: lex's first target to test' d" d& ~) O0 l4 P- V( M4 z7 A+ ]
' E8 U) E* [& g% W& d* q$ v4 u
此外这一段还提供了一段简单的代码,代码是cpp编写的。有一个域名空间minar很重要。之后要关注一下。语法和之前的mbed差不多。openocd还没用过。目前准备参照http://github.com/texane/stlink ... torial/tutorial.pdf来执行stlink的驱动。) f0 I6 Q& i2 o  S
此外还需要在linux上安装串口终端,不放试试minicom,ubuntu上安装方便:sudo apt-get install minicom! P  C) Z; o+ S4 {# O" O' k
在编译成功之后,需要讲代码复制到mbed上去,但是问题是stlink又有原生的linux驱动,这是一个大问题。在后续后详细介绍。但是,一种讨巧的办法是装虚拟机。这样就可以方便编译了。0 ^2 a: K5 z' N2 o/ R  z1 ~
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||8 i6 e& d; d' K" w+ `& g
2015.09.235 x7 k$ B# h: W% ?6 X
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||" H" r  U% ^" e7 J0 a- p
今天再补充一下mbed os的文件结构,这个是很重要的。
8 K- V" u  z1 O6 c$ e  }1 s" J官方的文档:http://www.mbed.com/zh-cn/development/software/tools/yotta/
6 V9 o9 C4 |/ D) Q; W3 N7 x8 \# n文档结构,用下图:
4 v2 J3 M0 O# H, s4 |yotta 模块或应用程序的结构
) g1 W. |7 C+ v* s. }
应用程序和可重用的 yotta 模块均有类似的结构:
  • 一个“module.json”文件。
  • 一个包含了要编译的源文件的“source”目录。
  • 一个与模块同名的头文件目录。
  • 一个“test”目录。
  • 一个总结模块 API 的“readme.md”文件。
      H5 m0 z3 q% S; A6 F( x6 \
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
7 p( G  m. i8 D1 u" S# k$ m2 b建议mbed的开发,要了解这个基础知识。/ V' ~! D5 Y5 {$ T8 o

/ A6 f. w! b/ K' ~4 R$ G; K, ~0 C- q2 C
目前只做到这里,后续希望慢慢更新
! \% f: n: B6 y" i. F6 p* g, ~0 @# g% g) S; Q- S2 x8 G- D+ u

1 f: _3 q2 K: x
收藏 评论12 发布时间:2015-9-22 22:00

举报

12个回答
watershade 回答时间:2015-9-22 22:03:18
本帖最后由 watershade 于 2015-9-22 22:05 编辑 & `( j% R+ n, K& _
. m5 `  U) i+ q: _  \3 Y9 B, N. P
需要说明的是我对mbed客户端的理解可能错误了,因为官方介绍的有些看不懂。官方的意思应该是说mbed客户端是和mbed os是同一级别的,是为了方便设备制造上考虑的。总之我前面的描述有问题。
1 r+ [2 J, j# x) ~& `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
3 `% I+ ^' z- a呵呵,操作系统太多了。

, X$ l/ w$ f+ r今年iot系统不是几大厂商在推吗,尝尝鲜。看看到底对开发有什么帮助。
yanhaijian 回答时间:2015-9-25 08:44:38
watershade 发表于 2015-9-24 20:53
' `. {' ~7 d) \% s; ~- r' ^" t今年iot系统不是几大厂商在推吗,尝尝鲜。看看到底对开发有什么帮助。
; z) C. V" F9 X$ H4 W. G5 e" t
现在只有推出可裁剪的桌面系统(非操作系统)才有大量用户。
Tension 回答时间:2015-9-25 17:59:17
楼主神速,我还没有看懂它的架构
watershade 回答时间:2015-9-25 22:38:19
yanhaijian 发表于 2015-9-25 08:44- C# A  b' f7 _
现在只有推出可裁剪的桌面系统(非操作系统)才有大量用户。
' W3 g: R3 G! E3 D/ A/ V) `4 k
尝试了一下,感觉还是有些难度。桌面系统,这个我还真没有概念,这是什么?阁下赐教。
watershade 回答时间:2015-9-25 22:39:19
Tension 发表于 2015-9-25 17:59
. V0 L, Z2 V" H. Q楼主神速,我还没有看懂它的架构
6 c9 G: @0 f! k/ `
其实,就看看,架构我呀还没理顺。慢慢了解。一起学习交流呀。话说现在支持的板子不多。
wyxy163@126.com 回答时间:2015-9-29 19:02:03
提示: 作者被禁止或删除 内容自动屏蔽
HankChiang 回答时间:2015-10-8 16:27:54
本帖最后由 HankChiang 于 2015-10-8 17:07 编辑
" c: c4 D" d" Z, H4 y+ |3 z6 Q1 s
可以請樓主分享一下yt build之後的完整log嗎?
* a8 j7 U( U9 V
+ O6 e4 l; d  C# B5 z- Q8 A3 {; h小弟下載了http://github.com/ARMmbed/helloyotta
6 p% W/ O6 X9 w  ]# K  c然後試著yt build$ ?! h0 Q5 r  x$ `
: j# S3 v) @6 J+ A% \( ^' z
info: generate for target: frdm-k64f-gcc 0.1.3 at /tmp/aaa/helloyotta/yotta_targets/frdm-k64f-gcc" w2 y2 Q' Q; K% ^7 X8 i/ Q
GCC version is: 4.8.3: U$ r! k# Z! L' v+ v" V8 O
-- Configuring done
& v6 e4 H  g, q9 S$ u: B- P* k-- Generating done
- o3 K$ I; A2 D$ Z) _-- Build files have been written to: /tmp/aaa/helloyotta/build/frdm-k64f-gcc: N. k' L$ ]2 U, {& v2 g8 U
log: warning: no configuration file specified, using default values2 D( o0 ?' O$ Y2 ]
log: ninja version 0.1.3 initializing+ D4 V' E1 {, A, r- o4 j
log: magic group: gid=0 (root)
% {! b7 z6 N  {& w# Vlog: entering main loop1 ~; _& O6 q0 P; `4 M* T( ]
log: generating initial pid array..
3 k( q; ]) R# c: vlog: now monitoring process activity
; n2 O4 n' r% x$ {/ w0 o- ?0 ~1 n3 x. E. C" W) r, V  n
就卡在上面這行不會動了" ~! k6 K' `  r7 N" i2 O8 |
請教一下這是什麼問題呢?----
1 T7 A9 l: ^' V. a0 ^! M' t更新一下最新進度
* O8 e  L% ^7 o$ d+ F( n* r+ i8 t先執行yt clean之後就build的出來了
5 g- h& G4 a- c應該是測試時把環境搞亂了
0 I2 w( l. L5 M7 u  U$ }, r0 @在此建議大家build之前先執行一次yt clean
7 X/ H' \! ]  o) ~
watershade 回答时间:2015-10-9 12:19:59
HankChiang 发表于 2015-10-8 16:27% A% P" K- i& z
可以請樓主分享一下yt build之後的完整log嗎?- l: g: k: t) i0 \) q) G: `$ G, I

7 y) K, B% P' o小弟下載了http://github.com/ARMmbed/helloyotta

- C  ?# U7 z) m& p* @1 W  [发现官方search出来的F401和411都编译不成功,不论linux还是windows上。但是F429可以
liuxing4585 回答时间:2015-10-9 12:57:56
顶顶更健康!

所属标签

相似分享

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