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

浅尝mbed os beta

[复制链接]
watershade 发布时间:2015-9-22 22:00
本帖最后由 watershade 于 2015-9-23 21:34 编辑 ' h& m7 v5 \$ z* V

( u2 m4 `/ v9 ~$ n. J, L" W本意外mbed os会在八月中旬发布,作为一个喜欢新鲜的人,自然焦灼等待。结果等到九月初,也没发现mbed os beta的发布。可是上周无意发现mbed os发布了,而且官网首页也换了。网址由mbed.org更换成mbed.com。之前不支持中文,现在由中英文两个版本,(心里欢喜,这次终于被公平对待了)。+ K4 L- ?* U& G  G3 a
" E0 {' r0 f- d
首页提供一个入门教程的链接。现在将要素写下来。
2 l4 ^/ h) ]* o2 M首先要说明mbed os只是mbed生态系统很小的一环,mbed还包含mbed客户端,mbed服务器(由mbed提供),mbed tls和其它工具。当然还包含硬件和硬件平台。6 u9 t+ |6 C; F( J
大致的树形关系应该是这样(自己的理解):" U# Q' ~# h4 d9 y" [
                                 mbed服务器(云端)
2 i' G. d& Z! N  r       ______________________|______________________2 C7 c9 C* @9 X( _9 i1 y  o4 H8 O
       |                        |               |            |                     |3 h8 g5 B  s6 Z6 a2 d
mbed客户端       ...其他客户端...                            mbed客户端0 b. L' A! K( e' _$ R2 r* T
                                                             ______________|____________
3 A& h3 C7 F$ C" n                                                             |                  |                         |4 Z6 W; Z( f' [
                                                        mbed os设备                       mbed os设备
3 B8 f+ _" U) F$ ^9 z                                               _________|_________2 n7 W( L+ W1 h: M
                                               |       |                |      |
1 u4 F0 i  }# H' c# z                                       传感器    执行器      指示与显示设备等
+ |2 X$ m7 L' D- @  f【可能错了】  g' F# M+ A+ `& A( v5 o
! v% }2 b8 R; F$ g, b/ O7 {

& p' h+ S6 q+ Y' c; t9 @4 n6 Y: _" ]' z0 ]" p- m

0 j* u) C/ W% D& p: S% M* @. U工具用于设置和编译等,LTS是安全通讯,也就是设备之间通讯互联的基础。在不同设备之间支持多种通讯协议。由许多协议一个外行还从没听过。  I# u% u4 c6 h/ I4 W4 r

+ g% `6 X0 _3 {+ c! i
* \* y3 J# I0 R+ _, S6 N/ L- M/ q. N" @( F  R8 |6 L
step 1: 安装yotta
9 e9 j# ]2 B, F9 H) ~# Jyotta就是上述所谓的工具中对mbed os最重要的工具,相当于ide和项目和模块管理系统。官方叫做软件模块系统。
8 f! g) d9 i- r/ x" U! _: Uhttp://www.mbed.com/zh-cn/development/software/tools/yotta/5 U7 l0 l$ U& ~6 L; j% L) z( ~; N8 `
这个是全新的体验,可以在三个主流系统上使用。在windows上听麻烦,我安装了一下,但是不知道是那个地方配置的问题,没有build成功。而且windows上不支持native编译,只能交叉编译。不过无所谓吧。之后慢慢解决出现的问题(目前遇到的问题是ninja error,环境变量应该配置没有问题,用yotta clean也没解决)。
  X# n- D- @8 W+ @) W安装请参考http://yottadocs.mbed.com/#installing
5 @& K8 N4 Z6 c# p
6 Y; J( r- w# Z! H$ y! q9 |. q1 _$ q* T我最终实在linux上用的,没办法木有mac。' @: |) @* i. O- q
step 2: 点灯-初始mbed os: v( z% J+ V! R/ n! V* O
在还没有对mbed os有一个清晰的认识之前,只能照葫芦画瓢。
( r' J7 S/ u3 n6 a官方网址:
$ U2 y5 \$ J2 T* I: B: yhttp://docs.mbed.com/docs/gettin ... FirstProjectmbedOS/4 K/ e' A* d( d0 i, A8 t- w% T
! {4 b9 z3 F/ o* W6 x7 S2 C
需要说明的有两点。一点是在yotta target (你的平台,比如stm32f429i-disco-gcc)。之后接着yotta target是没有设备的,提示missing。
' s( V5 i4 M2 X) C+ r需要执行玩install mbed-drivers之后,在执行就有了设备。; r# t/ ]; f2 W* |% o/ H2 Y& }
另外一点是,支持的设备目前不限于官方提供的几个。search到的设备都应该可以。没有的设备需要自己修改和添加。
1 ~; |6 f5 }: A" ^  h. [, @5 A, I当前支持的有:
0 e' s8 W; n) mtest-target-dep 0.0.2: Test Target Test Dependencies) P7 r) w7 ^/ g, @
frdm-k64f-gcc 0.0.24: Official mbed build target for the mbed frdm-k64f development board.
1 D2 R7 ?% v# M$ v( Ffrdm-k64f-armcc 0.0.16: Official mbed build target for the mbed frdm-k64f development board, using the armcc toolchain.% H( t- H4 X; L
bbc-microbit-classic-gcc 0.1.3: Official mbed build target for the mbed nrf51822 development board, using the armgcc toolchain.% z4 p2 y* y: [1 L: _
st-nucleo-f401re-gcc 0.1.0: Official mbed build target for the mbed st-nucleo-f401re development board.
6 }) d! u& M4 h, O/ nbbc-microbit-classic-armcc 0.1.0: Official mbed build target for the microbit, using the armcc toolchain.
  ?$ V# b6 `1 N; {stm32f429i-disco-gcc 0.0.5: Official mbed build target for the mbed st-nucleo-f429zi development board.
+ C: |% z  k: x8 rnordic-nrf51822-16k-gcc 0.0.9: Official mbed build target for the mbed nrf51822 development board, using the armgcc toolchain.
. {5 M. |  ?. Jnordic-nrf51822-32k-gcc 0.0.6: Official mbed build target for the nrf51822 32KB chip.) k3 G1 P, S- z6 Q  S+ @: v+ H# n
st-stm32f439zi-gcc 0.0.3: Official mbed build target for the st stm32f439zi microcontroller.
) o6 e& l' l3 B  T) g% J9 \1 unordic-nrf51822-16k-armcc 0.0.8: Official mbed build target for the mbed nrf51822 development board, using the armcc toolchain.3 n4 t- m4 [0 _) e+ ?5 O( y* _
stm32f411re-nucleo-gcc 0.0.1: Official mbed build target for the mbed st-nucleo-f411re development board.. T3 @- F% y- F6 E
bbc-microbit-classic-gcc-nosd 0.1.2: Official mbed build target for the BBC micro:bit, using the armgcc toolchain, without Softdevice.9 J2 a% s6 W# G( i; ]  |
nordic-nrf51822-32k-armcc 0.0.8: Official mbed build target for the mbed nrf51822 development board, using the armcc toolchain.
" Q6 o% I$ {3 {4 ^bbc-microbit-classic-armcc-nosd 0.1.0: Official mbed build target for the microbit, using the armcc toolchain, without soft device.8 h) b0 [0 Y4 j, P
x86-linux-native 0.0.6: Build target for programs compiled natively for Linux4 s% E& g( T4 ~+ c% C1 W( Y
x86-osx-native 0.0.7: Build target for programs compiled natively for OS X2 o- T6 R4 A' Q: @2 ^' X4 p. w8 C3 q
mbed-gcc 0.0.14: base mbed build target for gcc toolchain5 ^; G# G: ]& z4 i
mbed-armcc 0.0.16: Official mbed base target description for compiling with the ARMCC compiler
/ z3 P, M, a- j/ V/ Y2 n6 Mlibc 0.0.3: libc shim module: pulls in the platform libc when compiling for nostdlib targets5 @' e8 B) q" d+ ~2 n& B0 U; J& m9 ?  d
ublox-odin-w2-gcc 0.0.3: Official mbed build target for the ublox odin-w2 module.
. ^# g& ~7 z( f4 v; Sublox-odin-w2-evk-gcc 0.0.0: Official mbed build target for the mbed ublox c029 evkelopment board.
7 r6 t( b  V1 [% c. rseeedtinyble-gcc 0.0.2: Official mbed build target for the nrf51822 16KB chip.
4 P* i; Q+ E8 ~' H! O7 n* J: ]mkit-gcc 0.0.1: Official mbed build target for the nrf51822 16KB chip.
' g' a) g; f# Z0 \ublox-c029-gcc 0.0.0: Official mbed build target for the mbed ublox c029 development board.
- f% x/ t) b4 W9 fmkit-classic-armcc 0.0.1: mbed classic build target for nrf51822 mkit.
2 F6 h% j" |, [0 d! Xlex-test-gcc 0.0.1: lex's first target to test
: t4 W1 ^7 e+ z! @
* n( h" f7 R5 u: U此外这一段还提供了一段简单的代码,代码是cpp编写的。有一个域名空间minar很重要。之后要关注一下。语法和之前的mbed差不多。openocd还没用过。目前准备参照http://github.com/texane/stlink ... torial/tutorial.pdf来执行stlink的驱动。& E8 h% W, X- N" D' ~: [) l
此外还需要在linux上安装串口终端,不放试试minicom,ubuntu上安装方便:sudo apt-get install minicom7 y) B  C; u( `5 p. F+ r" U+ m' l: j3 w
在编译成功之后,需要讲代码复制到mbed上去,但是问题是stlink又有原生的linux驱动,这是一个大问题。在后续后详细介绍。但是,一种讨巧的办法是装虚拟机。这样就可以方便编译了。8 o/ K! R: n4 H1 Q9 M
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||! C5 I5 R9 T9 j+ \
2015.09.23) g9 p( a' h1 D* K$ Z/ }9 Q/ z
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||4 Q+ R. H$ ~6 c! q4 ~/ x
今天再补充一下mbed os的文件结构,这个是很重要的。
: m  V0 Q/ I1 Q. w( z官方的文档:http://www.mbed.com/zh-cn/development/software/tools/yotta/
5 ?2 B1 Q5 [; O! {! k2 |7 W文档结构,用下图:
$ w" g) C" W: q% _1 L. n  y/ Wyotta 模块或应用程序的结构 & f: x) c+ r0 j, [" L
应用程序和可重用的 yotta 模块均有类似的结构:
  • 一个“module.json”文件。
  • 一个包含了要编译的源文件的“source”目录。
  • 一个与模块同名的头文件目录。
  • 一个“test”目录。
  • 一个总结模块 API 的“readme.md”文件。
    6 k& Z: x7 b2 @( @$ |5 O
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.md9 g* q9 a6 S2 i4 Z- r
建议mbed的开发,要了解这个基础知识。/ R' J& v0 x/ N' z7 {
" l( z) m& z( a/ E$ M, i

$ _% ^& ^9 Z; a7 Z& s/ V1 ^目前只做到这里,后续希望慢慢更新  K7 w" D/ E3 `! ?- M
9 X& m' e' f: \$ R9 {; W

* g% S+ i+ [' N0 f3 [0 F
赞 收藏 评论12 发布时间:2015-9-22 22:00

举报

12个回答
watershade 回答时间:2015-9-22 22:03:18
本帖最后由 watershade 于 2015-9-22 22:05 编辑 2 Z" t2 Q: C# J/ J- u- X; n2 k" E, r

; z/ h& y- P6 v需要说明的是我对mbed客户端的理解可能错误了,因为官方介绍的有些看不懂。官方的意思应该是说mbed客户端是和mbed os是同一级别的,是为了方便设备制造上考虑的。总之我前面的描述有问题。
2 f- u+ R5 k2 u( [" ihttp://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:291 I. j9 d, X7 `9 v4 O5 h
呵呵,操作系统太多了。

( F7 [; _/ b: \& B今年iot系统不是几大厂商在推吗,尝尝鲜。看看到底对开发有什么帮助。
yanhaijian 回答时间:2015-9-25 08:44:38
watershade 发表于 2015-9-24 20:53) R" \; q, B9 L5 r* I7 n
今年iot系统不是几大厂商在推吗,尝尝鲜。看看到底对开发有什么帮助。

, L! O' T  x2 `$ G现在只有推出可裁剪的桌面系统(非操作系统)才有大量用户。
Tension 回答时间:2015-9-25 17:59:17
楼主神速,我还没有看懂它的架构
watershade 回答时间:2015-9-25 22:38:19
yanhaijian 发表于 2015-9-25 08:44
: u7 k8 r/ w2 H& E' e: l- F现在只有推出可裁剪的桌面系统(非操作系统)才有大量用户。
: u% ]/ ?9 G8 \; ], X) z( O
尝试了一下,感觉还是有些难度。桌面系统,这个我还真没有概念,这是什么?阁下赐教。
watershade 回答时间:2015-9-25 22:39:19
Tension 发表于 2015-9-25 17:59& B- ~8 v+ Z' S' I" k4 I
楼主神速,我还没有看懂它的架构

( Y; j8 c; i. p+ R( {3 f+ M/ f+ m其实,就看看,架构我呀还没理顺。慢慢了解。一起学习交流呀。话说现在支持的板子不多。
wyxy163@126.com 回答时间:2015-9-29 19:02:03
提示: 作者被禁止或删除 内容自动屏蔽
HankChiang 回答时间:2015-10-8 16:27:54
本帖最后由 HankChiang 于 2015-10-8 17:07 编辑 7 f  ?9 s( q" b
# P- O; t4 Z% {  C0 T
可以請樓主分享一下yt build之後的完整log嗎?: E  M" P$ v0 Z

5 H6 L/ M' Q9 D4 H0 v. z' ?小弟下載了http://github.com/ARMmbed/helloyotta- z5 s5 T- Z4 J1 C/ \+ O
然後試著yt build6 Q- L7 o6 s# z1 z) t- U
3 J' E- \3 g4 i3 R& @
info: generate for target: frdm-k64f-gcc 0.1.3 at /tmp/aaa/helloyotta/yotta_targets/frdm-k64f-gcc
3 e6 E! L0 t+ Z% h- r( Z( @8 [2 f: ^GCC version is: 4.8.3: m; |2 f1 V8 d1 s4 p& k
-- Configuring done5 L6 Q2 w& ~0 h2 D
-- Generating done
4 Q; d% x* D$ q" P-- Build files have been written to: /tmp/aaa/helloyotta/build/frdm-k64f-gcc/ n0 {  j; ^9 c3 g$ ^; U
log: warning: no configuration file specified, using default values
- \! b9 g# s( I# s$ flog: ninja version 0.1.3 initializing5 o4 `9 x( Y, e, X0 ^
log: magic group: gid=0 (root)! E% m7 G" D, p) q& \
log: entering main loop  M" N$ l9 V, ]& F  [6 E4 r! x
log: generating initial pid array..
! n* J4 D1 ^/ R/ D  n8 D1 Ilog: now monitoring process activity
% r' W. h8 c/ h5 Q; n: ?
/ Q. s# W+ Z/ `就卡在上面這行不會動了- A) a- a  e6 K3 {
請教一下這是什麼問題呢?----3 k# ^5 M, v% n: Y
更新一下最新進度
: W: \3 v, _2 _9 A% ^5 R9 t先執行yt clean之後就build的出來了
3 C) m/ ~+ C+ b- x9 p" U4 x0 v* J8 q應該是測試時把環境搞亂了  m. m5 {3 M3 T
在此建議大家build之前先執行一次yt clean% F1 g$ B6 E; k
watershade 回答时间:2015-10-9 12:19:59
HankChiang 发表于 2015-10-8 16:27: G: [" i+ n1 C, [" A
可以請樓主分享一下yt build之後的完整log嗎?
. w( f/ [0 g/ ^0 `$ A1 I; L  f) E3 p
小弟下載了http://github.com/ARMmbed/helloyotta
" Y. [8 z& I5 x) L1 G0 ~' |
发现官方search出来的F401和411都编译不成功,不论linux还是windows上。但是F429可以
liuxing4585 回答时间:2015-10-9 12:57:56
顶顶更健康!
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版