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

浅尝mbed os beta

[复制链接]
watershade 发布时间:2015-9-22 22:00
本帖最后由 watershade 于 2015-9-23 21:34 编辑 - u2 T; K+ W8 w" T& [/ g4 n$ ~

2 e2 {) P4 Z% K/ n4 l  \本意外mbed os会在八月中旬发布,作为一个喜欢新鲜的人,自然焦灼等待。结果等到九月初,也没发现mbed os beta的发布。可是上周无意发现mbed os发布了,而且官网首页也换了。网址由mbed.org更换成mbed.com。之前不支持中文,现在由中英文两个版本,(心里欢喜,这次终于被公平对待了)。( P: I5 p! F, ^+ y& X

8 u% w4 y4 O: T: t: f# V7 J首页提供一个入门教程的链接。现在将要素写下来。+ S5 @9 q8 O! A  p1 s$ Q0 G
首先要说明mbed os只是mbed生态系统很小的一环,mbed还包含mbed客户端,mbed服务器(由mbed提供),mbed tls和其它工具。当然还包含硬件和硬件平台。+ R1 K3 h& u. v1 C
大致的树形关系应该是这样(自己的理解):9 ?+ K+ j7 m0 H" M8 j
                                 mbed服务器(云端)/ g1 A2 C- A7 }! w. A
       ______________________|______________________/ E0 E4 k# `+ U
       |                        |               |            |                     |
8 x8 c/ v. G% f! F/ N$ ^3 A* Imbed客户端       ...其他客户端...                            mbed客户端
+ r) }) _6 _  ?3 S# K                                                             ______________|____________
8 P8 L( y' G, ?9 d; @; Y. ~1 _                                                             |                  |                         |, E* _! m9 h  F
                                                        mbed os设备                       mbed os设备2 s5 ~/ C8 o+ k; B7 d3 d6 T
                                               _________|_________
- p& i  y, [# z5 P: \9 J. D& N! R7 m                                               |       |                |      |" f, i1 t; ?3 O
                                       传感器    执行器      指示与显示设备等  ^5 H3 z7 k( A7 O3 Y: U
【可能错了】
  \% }! H, _* h; z. |
4 N; X% R3 Y7 E9 [# Y
6 k9 @; E" E+ I( K! s; w
2 Y% n# D5 {, F# m# F8 p2 Z0 ^9 M8 {( V
* J+ s: G) ]4 g4 G, t# F工具用于设置和编译等,LTS是安全通讯,也就是设备之间通讯互联的基础。在不同设备之间支持多种通讯协议。由许多协议一个外行还从没听过。& o# K6 r' o- a7 d3 ]
( t9 e% G, T( F9 r) s- c
. U  C3 Q4 J( `; c" u

# w! I0 ^- ]. s. {  `step 1: 安装yotta& Q' ^. i6 _# f: _* b3 P2 W% ]
yotta就是上述所谓的工具中对mbed os最重要的工具,相当于ide和项目和模块管理系统。官方叫做软件模块系统。3 O* f; q2 Z$ x2 r. E/ v
http://www.mbed.com/zh-cn/development/software/tools/yotta/. a$ h) C7 J4 |3 [# z) X0 k
这个是全新的体验,可以在三个主流系统上使用。在windows上听麻烦,我安装了一下,但是不知道是那个地方配置的问题,没有build成功。而且windows上不支持native编译,只能交叉编译。不过无所谓吧。之后慢慢解决出现的问题(目前遇到的问题是ninja error,环境变量应该配置没有问题,用yotta clean也没解决)。
' A0 h4 e7 E3 a+ F  w: W: b安装请参考http://yottadocs.mbed.com/#installing& G5 i( T! P3 C9 I6 k6 @
/ w6 b* L& G( G7 p9 ?
我最终实在linux上用的,没办法木有mac。! b1 Z! z) C% T7 U
step 2: 点灯-初始mbed os
7 K) e) y- r) Y: p* F, }在还没有对mbed os有一个清晰的认识之前,只能照葫芦画瓢。
4 ]8 o9 A0 N5 e8 d官方网址:) p$ b. S  z" [6 ^" v+ k
http://docs.mbed.com/docs/gettin ... FirstProjectmbedOS/
3 k" P: H4 u# l3 @, u. p7 a( O- W% M/ s
需要说明的有两点。一点是在yotta target (你的平台,比如stm32f429i-disco-gcc)。之后接着yotta target是没有设备的,提示missing。8 d& h. n* Y6 [7 J0 S/ b
需要执行玩install mbed-drivers之后,在执行就有了设备。
3 p) J: C5 I+ j! a. o另外一点是,支持的设备目前不限于官方提供的几个。search到的设备都应该可以。没有的设备需要自己修改和添加。
# F0 k7 e# J( @% u: K当前支持的有:3 m6 D$ Q& r% o
test-target-dep 0.0.2: Test Target Test Dependencies' Q6 s& Q! G) E, U
frdm-k64f-gcc 0.0.24: Official mbed build target for the mbed frdm-k64f development board.
  T# ^; q. }# L$ U- H& dfrdm-k64f-armcc 0.0.16: Official mbed build target for the mbed frdm-k64f development board, using the armcc toolchain.
# L6 k/ M  E9 ^; H6 F! Vbbc-microbit-classic-gcc 0.1.3: Official mbed build target for the mbed nrf51822 development board, using the armgcc toolchain.* Z/ Y% ~9 J' V' x6 D; A' R
st-nucleo-f401re-gcc 0.1.0: Official mbed build target for the mbed st-nucleo-f401re development board.0 f0 Y! V0 p$ V! K$ `) S
bbc-microbit-classic-armcc 0.1.0: Official mbed build target for the microbit, using the armcc toolchain.
; w  b6 f; ?$ y0 F2 d! g7 |5 Astm32f429i-disco-gcc 0.0.5: Official mbed build target for the mbed st-nucleo-f429zi development board.
% i" J  T# z* E4 F3 V1 i' q6 n) Znordic-nrf51822-16k-gcc 0.0.9: Official mbed build target for the mbed nrf51822 development board, using the armgcc toolchain.& H) O3 p1 D2 @1 j7 i
nordic-nrf51822-32k-gcc 0.0.6: Official mbed build target for the nrf51822 32KB chip.2 `* Z  M  f9 _* ^/ z4 s$ G; o
st-stm32f439zi-gcc 0.0.3: Official mbed build target for the st stm32f439zi microcontroller.
) R: k* K5 O9 x! P0 T# tnordic-nrf51822-16k-armcc 0.0.8: Official mbed build target for the mbed nrf51822 development board, using the armcc toolchain.
; f1 d6 E/ {0 l) o. z! ~# Estm32f411re-nucleo-gcc 0.0.1: Official mbed build target for the mbed st-nucleo-f411re development board.3 F. T2 Q9 m. ?2 A, f  f
bbc-microbit-classic-gcc-nosd 0.1.2: Official mbed build target for the BBC micro:bit, using the armgcc toolchain, without Softdevice.
) E  s, b7 n& ]6 `nordic-nrf51822-32k-armcc 0.0.8: Official mbed build target for the mbed nrf51822 development board, using the armcc toolchain.6 `) h5 N3 U3 Y3 Z" z! c" j  L* U
bbc-microbit-classic-armcc-nosd 0.1.0: Official mbed build target for the microbit, using the armcc toolchain, without soft device.( q1 q7 Z; [" @& g/ N
x86-linux-native 0.0.6: Build target for programs compiled natively for Linux
0 I7 X( L2 D6 `. dx86-osx-native 0.0.7: Build target for programs compiled natively for OS X. H% c9 N( r  X( {2 X/ N6 I
mbed-gcc 0.0.14: base mbed build target for gcc toolchain) ?5 _) k0 I7 w. ]9 g2 @9 d* S
mbed-armcc 0.0.16: Official mbed base target description for compiling with the ARMCC compiler
% W* K) W& }5 I" P; a! V* p/ glibc 0.0.3: libc shim module: pulls in the platform libc when compiling for nostdlib targets
) K+ ~  F: s- @; `* d0 fublox-odin-w2-gcc 0.0.3: Official mbed build target for the ublox odin-w2 module.9 q$ v; s% l0 p, p$ Z" U2 }: Q& t% o
ublox-odin-w2-evk-gcc 0.0.0: Official mbed build target for the mbed ublox c029 evkelopment board.- \' m- C) s3 N9 M3 X
seeedtinyble-gcc 0.0.2: Official mbed build target for the nrf51822 16KB chip.
- @5 X: @: y! \, _5 _: `6 q- ]mkit-gcc 0.0.1: Official mbed build target for the nrf51822 16KB chip.
5 c( d# T- b" d! h0 [2 F3 zublox-c029-gcc 0.0.0: Official mbed build target for the mbed ublox c029 development board.. P6 {2 Y( d; n7 q( J0 G4 \
mkit-classic-armcc 0.0.1: mbed classic build target for nrf51822 mkit.' e, C# Q! E  v3 p5 Q2 i: Y
lex-test-gcc 0.0.1: lex's first target to test: D: e* \0 p* }4 h5 O
" J* q" V( n4 ]1 t  q' G; H) }
此外这一段还提供了一段简单的代码,代码是cpp编写的。有一个域名空间minar很重要。之后要关注一下。语法和之前的mbed差不多。openocd还没用过。目前准备参照http://github.com/texane/stlink ... torial/tutorial.pdf来执行stlink的驱动。# ^( I- r$ o0 c0 G
此外还需要在linux上安装串口终端,不放试试minicom,ubuntu上安装方便:sudo apt-get install minicom
/ }* \  s. g* m在编译成功之后,需要讲代码复制到mbed上去,但是问题是stlink又有原生的linux驱动,这是一个大问题。在后续后详细介绍。但是,一种讨巧的办法是装虚拟机。这样就可以方便编译了。) O* O: u. J, N9 Y, h* r
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
% J0 V' x! l  j( u. U4 _/ `3 A4 W" t2015.09.23
+ M& n0 I; `; j  p|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# r& o; x, G2 i今天再补充一下mbed os的文件结构,这个是很重要的。& G5 y  J' [3 r; e& R0 Y
官方的文档:http://www.mbed.com/zh-cn/development/software/tools/yotta// O% v  M% c: z' [
文档结构,用下图:
  q( n/ j' _6 p9 J! @yotta 模块或应用程序的结构
* x4 j, O, z$ Q5 }( M
应用程序和可重用的 yotta 模块均有类似的结构:
  • 一个“module.json”文件。
  • 一个包含了要编译的源文件的“source”目录。
  • 一个与模块同名的头文件目录。
  • 一个“test”目录。
  • 一个总结模块 API 的“readme.md”文件。
    ! N; U- e7 D8 c/ U
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
5 ~, k' O# P2 E建议mbed的开发,要了解这个基础知识。
% T. z4 R; W. L1 b+ G
4 ?5 P! w5 }4 N* T+ c  p
" e' G. {5 M  w' [9 X0 h# u6 v* A目前只做到这里,后续希望慢慢更新4 o5 I: E3 @$ m  @5 n% G8 V

8 J" e! o$ l  }" _6 [" `
1 k* ]" \; T7 }; q# t
收藏 评论12 发布时间:2015-9-22 22:00

举报

12个回答
watershade 回答时间:2015-9-22 22:03:18
本帖最后由 watershade 于 2015-9-22 22:05 编辑 , _$ `/ S, ]" s
5 J' t& R2 @% f& ?/ n5 _
需要说明的是我对mbed客户端的理解可能错误了,因为官方介绍的有些看不懂。官方的意思应该是说mbed客户端是和mbed os是同一级别的,是为了方便设备制造上考虑的。总之我前面的描述有问题。
/ X/ H. `! v9 s; u4 g! x& Khttp://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
+ I2 G( Y9 A, p( \  f呵呵,操作系统太多了。
/ e- `1 h( s9 t( N+ V- W
今年iot系统不是几大厂商在推吗,尝尝鲜。看看到底对开发有什么帮助。
yanhaijian 回答时间:2015-9-25 08:44:38
watershade 发表于 2015-9-24 20:53
1 \1 k) S9 o3 k. X, W. `. ^. b! W今年iot系统不是几大厂商在推吗,尝尝鲜。看看到底对开发有什么帮助。
% e* p1 x6 x' w
现在只有推出可裁剪的桌面系统(非操作系统)才有大量用户。
Tension 回答时间:2015-9-25 17:59:17
楼主神速,我还没有看懂它的架构
watershade 回答时间:2015-9-25 22:38:19
yanhaijian 发表于 2015-9-25 08:444 r, W) a7 J7 T  |) C4 H9 Z5 m& T
现在只有推出可裁剪的桌面系统(非操作系统)才有大量用户。

, {4 d% l; k, j; Y尝试了一下,感觉还是有些难度。桌面系统,这个我还真没有概念,这是什么?阁下赐教。
watershade 回答时间:2015-9-25 22:39:19
Tension 发表于 2015-9-25 17:590 u, S4 `& o( y, c# c
楼主神速,我还没有看懂它的架构

0 C& m- O2 e% g0 a" y其实,就看看,架构我呀还没理顺。慢慢了解。一起学习交流呀。话说现在支持的板子不多。
wyxy163@126.com 回答时间:2015-9-29 19:02:03
提示: 作者被禁止或删除 内容自动屏蔽
HankChiang 回答时间:2015-10-8 16:27:54
本帖最后由 HankChiang 于 2015-10-8 17:07 编辑
4 U5 J" v, H; f# m7 d$ M7 ?; U8 f) g) ?! |5 [8 A# J' Q( N8 g
可以請樓主分享一下yt build之後的完整log嗎?
0 ~1 g" |& C: [* o$ m, U
6 Q3 u2 H9 D' l- \; m8 L小弟下載了http://github.com/ARMmbed/helloyotta
4 M8 q: e2 a: S  ^  h/ k  f, d' l然後試著yt build+ x" h$ h2 a" i
! N8 j" d2 y  X
info: generate for target: frdm-k64f-gcc 0.1.3 at /tmp/aaa/helloyotta/yotta_targets/frdm-k64f-gcc
! k! @, ]7 b, D  {GCC version is: 4.8.3$ [4 U" a0 u0 n
-- Configuring done. e; L/ H2 f# P( S
-- Generating done
7 P5 v+ Q* u5 ]! D4 g-- Build files have been written to: /tmp/aaa/helloyotta/build/frdm-k64f-gcc- Q3 L* D3 N7 Y1 B7 W$ ^# X
log: warning: no configuration file specified, using default values. {6 r  V# G, }3 K- F* Y. ^3 }! V
log: ninja version 0.1.3 initializing) W4 M0 ], C/ f$ ]
log: magic group: gid=0 (root)
6 F" W2 ?. O* C, B" L8 I0 _) Y  Zlog: entering main loop
. ]! r- e1 T" h6 e& n$ Plog: generating initial pid array..
; s5 D2 Y" y* @* M! l( ulog: now monitoring process activity
# A  P% j; o8 i* m
5 {7 U$ Z1 d$ [4 n9 w: p就卡在上面這行不會動了, Q' c0 S; j+ d' g. [" w# R5 O
請教一下這是什麼問題呢?----
0 V: a) a; U6 a' z3 g! J- q- n更新一下最新進度
4 _3 d1 g6 `# |; C$ d4 d先執行yt clean之後就build的出來了: Y5 J4 x) y% `/ k
應該是測試時把環境搞亂了
' [. f; @, f; M* r在此建議大家build之前先執行一次yt clean0 o! G/ H2 X* |  T, ~
watershade 回答时间:2015-10-9 12:19:59
HankChiang 发表于 2015-10-8 16:27
3 R6 Y$ S4 \8 m& o2 z可以請樓主分享一下yt build之後的完整log嗎?
: O5 i) i; q% z8 H! v* H$ g2 `2 e8 h* l0 h! p7 ]
小弟下載了http://github.com/ARMmbed/helloyotta

8 L! V; j3 i: @+ Y发现官方search出来的F401和411都编译不成功,不论linux还是windows上。但是F429可以
liuxing4585 回答时间:2015-10-9 12:57:56
顶顶更健康!

所属标签

相似分享

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