Socket网络编程的广播用的地址是255.255.255.255,广播数据不会被路由器转发,限定于局域网内,否则就是网络风暴了。

广播的代码比较简单,直接参考单播/组播的例子写一个。

Server端的流程如下:

  • 调用socket()打开一个Socket
  • 调用bind()指定Port信息
  • 调用setsockopt()加入广播
  • 调用recvfrom()阻塞接收
  • 最后,调用close()关闭Socket

下载地址

Files:

VxWorks下的kprintf调用

Date 2020-05-18
File Size 568.25 KB
Download 158

下载地址

VxWorks下的管道Pipe介绍

Date 2020-05-06
File Size 600.65 KB
Download 125

VxWorks下的管道Pipe介绍

VxWorks的系统任务

VxWorks操作系统自带一些系统任务,主要用于系统的调试和控制。

根任务

根任务是内核执行的第一个任务,该任务主要完成系统的初始化功能并创建其他系统任务。

其初始化内容包括:I/O系统、设备驱动程序等必要的系统资源的初始化,并创建其他如日志任务、网络任务等系统任务。完成初始化功能后,根任务终止退出。

任务的设计模式属于Run_to_end_Tasks。

任务设计模式

任务的设计模式主要有两种,一种Run_to_end_Tasks,这种模式下任务完成后就终止退出,一般用于在系统上电后完成一些指定初始化功能。另外一种是无限循环的任务(Continuous_Tasks),这种任务是最为常见的,用于执行某些特定功能的代码。在设计无限循环任务最重要的一点是,其循环代码中至少有退出的条件,这样才能使低优先级的任务有机会得到CPU。

日志任务

VxWorks SDK

作者:Claudio Lener

我刚到风河公司工作是在1月份,当时我是一名产品管理实习生。这是我在Waterloo大学攻读计算机科学学士学位期间的第五次实习。在大学前三年,我已经学习和研究了与这个行业相关的很多知识,比如算法、数据结构、编译原理和操作系统等。在风河公司实习至今,我深切地感受到一些涵盖软硬件结合的底层技术相关课程特别有用,可以帮我更好地理解在风河参与的嵌入式软件项目。

我参与的第一个项目是最新开发的VxWorks软件开发工具包(SDK),你可以在最近发布的Wind River Labs中找到它。我的任务是查阅VxWorks的文档,并从高层面的视角去理解实时操作系统(RTOS)是如何工作,并逐步往下深入到SDK层。我们团队的目标是构建一个SDK,这将成为一个面向当今开发人员量身定制的应用软件开发环境,可以帮助他们借助VxWorks轻松快捷地开发应用软件。

我阅读了RTOS文档并亲自构建了各种VxWorks组件,比如VxWorks Source Project (VSB)、VxWorks Image Project (VIP)、Real-Time Processes (RTP)和Downloadable Kernel Modules,由此我领会到VxWorks在为用户提供强大功能的同时所面对的复杂度问题。VxWorks的开发环境是可配置的,允许我根据所研究的不同示例构建不同类型的映像工程。不过,由于我还只是个在校大学生,理解起来有些吃力,花了不少时间才完全上手。我学到了很多关于嵌入式系统的知识,但和我以前所学所想的完全不一样。

完成了VxWorks相关的入职培训之后,我就可以着手SDK相关的工作了。SDK相关工作的目的是把平台端的开发工作与构建和创建应用程序相分离。为了解决前一个问题,团队构建了一个SDK生成器,它使平台开发人员能够为特定的用例构建自定义的SDK。至于后一个问题,SDK一旦创建完成,团队中的任何成员都可以使用它来快速编写VxWorks应用软件,而无需了解如何配置VxWorks映像。

在生成SDK的第一步中,我就惊讶地发现创建SDK实例是多么简单。该过程包括使用一个Python命令vxbuild.py创建VSB和VIP,然后运行generate_sdk.py命令。这两个步骤允许我为特定的电路板(比如NXP i.MX8M)和特定的语言(比如C、Rust或Python)配置RTOS映像。在应用软件开发方面,SDK也支持QEMU,它可以在我的PC上模拟嵌入式系统,同时SDK也支持Visual Studio Code作为IDE使用。于是,我在Wind River Labs上快速下载了这些免费的软件工具,结合新创建的SDK,就可以着手编写和调试VxWorks DKM和RTP了。最近,Docker容器也被作为一项辅助服务整合进了开发环境,用于管理Visual Studio工作区。有了它,我就能够在Windows主机上运行Linux SDK,这是另一个我能够利用的有用的工具。

从创建VSB和VIP到在VS Code上调试Hello World,整个过程大约需要半个小时。相较于我在大学学习的课程,我觉得这个过程更加直观和直接。最初让我担心的是我对嵌入式系统开发了解有限,因为在之前的实习中,我的工作都是处理数据库、移动技术、web开发和机器学习等更高层的技术。因此,进入风河公司时我对公司所涉及的嵌入式系统技术知之甚少,这让我不禁担心我需要多长时间才能跟得上进度。由于使用SDK的过程很顺利,我很高兴地知道在熟悉平台的情况下,我能很快地编写出软件,我已经熟悉了一些平台,比如VS Code,我经常用它们来做我的个人项目,以及我以前的实习项目和大学课程。

总的来说,我使用SDK的经历是非常顺畅愉快的,智能网络边缘的嵌入式系统市场正在不断增长,我相信VxWorks已为在该领域取得更大成就迈出了重要的一步。