社区导航

 
查看: 2506|回复: 12

[原创] [Zephyr] 入门篇:shell 实验

[复制链接]

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-1-18 20:52:12 | 显示全部楼层 |阅读模式
本帖最后由 tidyjiang8 于 2017-1-19 11:04 编辑

Zephyr 入门篇:shell 实验


为了达到人机交互的目的,Zephyr 提供了一个 Shell 例程,位于 `samples/shell` 下面。这个 shell 只提供了最最基本的功能,额外的功能需要用户根据自己产品的需求进行添加。添加额外功能的方法非常简单,可以参考 Zephyr 的文档 Zephyr OS Shell 或者直接参考源码中的 shell 例程。

Shell 的架构
******************************

Shell 的架构如下图所示:
  1.   
  2.               shell
  3.            /         \
  4.      module1        moudle2    ...
  5.      /    \        /   |   \
  6.   cmd1    cmd2    cmd1 cmd2 cmd3 ...
复制代码

整个 shell 子系统由若干个模块(module)组成,而每个模块又由若干过命令组成。用户可以根据自己的需要向 shell 子系统中注册新的模块,并实现这个模块需要完成的命令(具体需要完成哪些命令也由用户决定)。

编译 shell
******************************

进入 shell 所在目录,然后编译:
  1.   $ cd samples/shell
  2.   $ make
复制代码

编译完成后,将会在 samples/shell/outdir/xxx/ 下生成镜像文件 zephyr.bin,你可以将其烧写到你对应的板子上。

使用 QEMU 仿真
******************************

仿真 x86 架构:
  1. $ make qemu
复制代码

编译完成后会自动在 QEMU 中运行我们的 shell 例程。此时我们可以通过 help 命令查看 shell 中支持哪些模块:
  1. shell> help
复制代码

shell-1.png
我们可以通过命令 `set_module xxx` 进入 xxx 模块:
  1. shell> set_module kernel
复制代码

进入 kernel 模块后,命令提示符由 `shell>` 变为了 `kernel>`。此时我们可以再使用 help 命令,查看该模块提供了哪些命令:
  1.   kernel> help
复制代码

shell-2.png
我们可以使用 `version` 命令查看 Zephyr 的版本,使用 `uptime` 命令查看系统上电后运行了多久(单位是毫秒)等等。::
  1.   kernel> version
  2.   kernel> uptime
复制代码

   shell-3.png

烧写到硬件平台
******************************

请参考这篇帖子将 zephyr.bin 烧写到你的硬件平台上面:http://bbs.eeworld.com.cn/thread-511589-1-1.html

总结
******************************

Zephyr 中的 shell 可以用短小精悍来形容,虽然它提供的模块非常少,但是模块的开发非常方便,而且然还支持 tab 键补全等一些暖心小功能。

评分

1

查看全部评分



回复

使用道具 举报

1480

TA的帖子

1

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-1-18 21:34:52 | 显示全部楼层
弄个标准平台大家一起来玩? 模拟器总有带套行凶的感觉。

点评

也考虑过在某个固定的平台上,但是在我后续的计划中,有些不同的功能需要不同的板子。。。 shell 这类程序都很通用,只需要 uart 就可以,随便找个 zephyr 支持的板子都可以运行了。 我推荐的板子包括: 96B-Carb  详情 回复 发表于 2017-1-18 21:49
说的太有道理了,东西太多了,学不过来。最累的还是开发者  详情 回复 发表于 2017-1-18 21:46
人已离开,无事别找,找也找不到。


回复

使用道具 举报

5459

TA的帖子

185

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-1-18 21:46:05 | 显示全部楼层
freebsder 发表于 2017-1-18 21:34
弄个标准平台大家一起来玩? 模拟器总有带套行凶的感觉。

说的太有道理了,东西太多了,学不过来。最累的还是开发者

点评

年后再考虑推荐一个  详情 回复 发表于 2017-1-18 21:57
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,虽然在群里买不到板子,但是可以学会开车;虽然学不到技术,但是可以学会开车;商家勿入!加群暗号:喵


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-1-18 21:49:37 | 显示全部楼层
本帖最后由 tidyjiang8 于 2017-1-18 21:51 编辑
freebsder 发表于 2017-1-18 21:34
弄个标准平台大家一起来玩? 模拟器总有带套行凶的感觉。

也考虑过在某个固定的平台上,但是在我后续的计划中,有些不同的功能需要不同的板子。。。
shell 这类程序都很通用,只需要 uart 就可以,随便找个 zephyr 支持的板子都可以运行了。
我推荐的板子包括:
96B-Carbon
Arduino Due
Arduino 101
FRDM-K64F
CC3200
nRF51-PCA10028
nRF52-PCA10040
nRF52840-PCA10056
以及一系列的 STM32 xxx

点评

我看过这些平台。要么偏贵,要么关注点都很单一,要一些东西凑一起才能做功能,很麻烦。 收发器最好是多协议支持,底板k64f带了802.11,这种组合可能比较通用。  详情 回复 发表于 2017-1-18 22:00


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-1-18 21:57:06 | 显示全部楼层
lcofjp 发表于 2017-1-18 21:46
说的太有道理了,东西太多了,学不过来。最累的还是开发者

年后再考虑推荐一个


回复

使用道具 举报

1480

TA的帖子

1

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-1-18 22:00:21 | 显示全部楼层
tidyjiang8 发表于 2017-1-18 21:49
也考虑过在某个固定的平台上,但是在我后续的计划中,有些不同的功能需要不同的板子。。。
shell 这类程 ...

我看过这些平台。要么偏贵,要么关注点都很单一,要一些东西凑一起才能做功能,很麻烦。
收发器最好是多协议支持,底板k64f带了802.11,这种组合可能比较通用。

点评

这是一个好的选择。所有的板子里面,zephyr 对 arduino_101 和 k64f 支持得最好了,尤其是对 javascript 的支持  详情 回复 发表于 2017-1-19 09:33
人已离开,无事别找,找也找不到。


回复

使用道具 举报

7307

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-1-18 22:18:15 | 显示全部楼层
先带着大家玩玩,从1-2种流行开发板开始,比如FRDM-K64F、CC3200、Arduino101,这样就比较好交流了。

点评

我年会考虑选两块吧  详情 回复 发表于 2017-1-19 09:32


回复

使用道具 举报

180

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-1-19 09:02:01 | 显示全部楼层
我做了一块板子 兼容nucleo_f103rb,后面拿出来分享

点评

这个非常可以有,Zephyr 天生支持 nucleo_f103rb,期待...  详情 回复 发表于 2017-1-19 09:28


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-1-19 09:28:35 | 显示全部楼层
generalissimo 发表于 2017-1-19 09:02
我做了一块板子 兼容nucleo_f103rb,后面拿出来分享

这个非常可以有,Zephyr 天生支持 nucleo_f103rb,期待...


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-1-19 09:32:39 | 显示全部楼层
dcexpert 发表于 2017-1-18 22:18
先带着大家玩玩,从1-2种流行开发板开始,比如FRDM-K64F、CC3200、Arduino101,这样就比较好交流了。

我年会考虑选两块吧

点评

太棒啦 ,支持一下 哈哈  详情 回复 发表于 2017-1-19 10:09


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-1-19 09:33:40 | 显示全部楼层
freebsder 发表于 2017-1-18 22:00
我看过这些平台。要么偏贵,要么关注点都很单一,要一些东西凑一起才能做功能,很麻烦。
收发器最好是多 ...

这是一个好的选择。所有的板子里面,zephyr 对 arduino_101 和 k64f 支持得最好了,尤其是对 javascript 的支持


回复

使用道具 举报

2万

TA的帖子

74

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2017-1-19 10:09:33 | 显示全部楼层
tidyjiang8 发表于 2017-1-19 09:32
我年会考虑选两块吧

太棒啦 ,支持一下 哈哈
2018,加油!继续为中国电子行业做出小小的贡献吧!
QQ 1206973913


回复

使用道具 举报

2742

TA的帖子

1

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-1-21 17:56:32 | 显示全部楼层
好。看看能做点什么。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-12-16 18:44 , Processed in 0.343279 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表