随笔分类 -  RTEMS

RTEMS中断调用和初始化
摘要:以beagle为例:在初始化阶段,boot_card函数中,会调用bsp_start():void boot_card( const char *cmdline){ rtems_interrupt_level bsp_isr_level; /* * Ma... 阅读全文

posted @ 2018-01-25 14:29 sichenzhao 阅读(342) 评论(0) 推荐(0)

RTEMS同步互斥与优先级处理算法
摘要:对于各个task线程之间需要同步互斥的情况,RTEMS提供信号量(semaphore)、自旋锁(SpinLock)、读写锁(RWLock)等互斥机制。信号量:RTEMS支持二值信号量和计数信号量。二值信号量只能取0和1两个值,当值为0时,表示信号量不可用,当值为1,表... 阅读全文

posted @ 2018-01-24 22:33 sichenzhao 阅读(498) 评论(0) 推荐(0)

RTEMS线程调度算法(RMS)详解
摘要:RTEMS是以线程为基本调度单位的,调度算法基于优先级的抢占式线程调度,支持256个线程优先级。当然RTEMS值hi创建同等优先级线程,相同优先级的线程采用时间片轮转调度。调度器寻找下一个最高优先级就绪线程的时间是o(1),这是实时性得到保障的一个关键机制。为了增强对... 阅读全文

posted @ 2018-01-24 17:44 sichenzhao 阅读(1892) 评论(0) 推荐(0)

RTEMS初始化线程(task)运行
摘要:RTEMS是如何运行第一个任务的?又是怎么样新建任务并进行切换的?这要从RTEMS运行到boot_card开始说起,boot_card之前的初始化过程可参考之前的博文:http://blog.csdn.net/hahachenchen789/article/detai... 阅读全文

posted @ 2018-01-24 14:05 sichenzhao 阅读(412) 评论(0) 推荐(0)

RTEMS与通用操作系统的不同点总结
摘要:RTEMS基于典型的实时操作系统涉及思路,与典型的通用操作系统(UNIX,windows)等差别很大。一、系统调用方面系统调用是应用程序访问操作系统的接口,通用操作系统中,操作系统与应用程序处于两个不同的CPU特权态,操作系统处于核心态,应用程序处于用户态,核心态可执... 阅读全文

posted @ 2018-01-24 11:17 sichenzhao 阅读(497) 评论(0) 推荐(0)

ION-DTN在RTEMS上的移植
摘要:ION-DTN是DTN协议栈的具体实现,广泛应用在深空通信等恶劣环境下,RTEMS作为星载操作系统之一,若能在RTEMS上实现DTN协议栈,能够为RTEMS的提供更为广泛的应用。接下来详细描述如何将ION-DTN移植到RTEMS上。ION-DTN的3.5.0版本中有关... 阅读全文

posted @ 2017-10-25 17:04 sichenzhao 阅读(334) 评论(0) 推荐(0)

Add wpa_supplicant_fork command on RTEMS-libbsd
摘要:在将wpa_supplicant移植到RTEMS上后,我们能在shell command中使用该命令,但是存在一个BUG,当我们通过命令wpa_supplciant配置WPA时,我们不嫩使用其他命令,或者其他thread。因此我们要创建一个新的thread让wpa_s... 阅读全文

posted @ 2017-08-13 16:05 sichenzhao 阅读(142) 评论(0) 推荐(0)

Port WPA supplicant to RTEMS-libbsd
摘要:上篇博文详细描述了import wpa_supplicant from FreeBSD。 这篇博客将描述如何将wpa supplicant 在RTEMS环境下编译。1.RTEMS doesn't support the PID and daemonize, so we... 阅读全文

posted @ 2017-08-13 15:55 sichenzhao 阅读(220) 评论(0) 推荐(0)

Import WPA from FreeBSD
摘要:对于WPA 加密WiFi,我们需要的是wpa_supplicant 软件,该软件广泛应用于BSD, Linux, Windows等操作系统,主要功能是WiFi管理功能,多用于WPA/WPA2协议的加密WiFi。因此需要从FreeBSD中移植该软件到RTEMS上。注意:... 阅读全文

posted @ 2017-08-13 15:06 sichenzhao 阅读(133) 评论(0) 推荐(0)

添加OpenSSL库支持for WPA on RTEMS-libbsd
摘要:WPA加密WiFi需要OpenSSL库的支持,因此我们需要从FreeBSD中import该库。RTEMS git 的master branch已经merge该部分的本人贡献的代码。可前往自行下载。1. Add openssl lib files in libbsd.p... 阅读全文

posted @ 2017-08-13 14:56 sichenzhao 阅读(178) 评论(0) 推荐(0)

Add Copy headers support for RTEMS-libbsd
摘要:在移植OpenSSL库的过程中,碰到了问题:当我从FreeBSD import 文件并port to RTEMS时,被include的头文件的文件路径和其实际的文件路径不同时,会造成编译错误,因为编译器waf找不到头文件。一个例子就是:the . The source... 阅读全文

posted @ 2017-08-13 14:35 sichenzhao 阅读(134) 评论(0) 推荐(0)

添加WEP 加密WiFi支持 for RTEMS-libbsd on BBB BSP
摘要:在实现USB WiFi 芯片 rtl8188eu驱动后,接下来开始实现加密WiFi: WEP,目前rtems的GitHub上的master 已经merge了本人贡献的WEP代码,可以自行前去下载。1.Add the WEP module suppport in nex... 阅读全文

posted @ 2017-08-13 14:18 sichenzhao 阅读(275) 评论(0) 推荐(0)

RTEMS USB support for BBB 文档
摘要:本文档是本博主这段时间工作的一个小总结,主要针对RTEMS for BBB BSP 的USB支持。由于要和RTEMS公司进行交流,因此文档大部分使用英文进行撰写。转载请说明出处。1. 如何build RSB(RTEMS source builder)1. 新建文件夹s... 阅读全文

posted @ 2017-08-13 12:11 sichenzhao 阅读(332) 评论(0) 推荐(0)

RTEMS-libbsd实现FDT support for BBB
摘要:上篇博文描述了如何在RTEMS上实现FDT,这篇文章将展示如何在RTEMS-libbsd上实现FDT support。rtems-libbsd 管理总线的实现在nexus-devices.h文件中,也就是: rtemsbsd/include/bsp/nexus-dev... 阅读全文

posted @ 2017-07-04 16:20 sichenzhao 阅读(322) 评论(0) 推荐(0)

RTEMS实现FDT support for Beaglebone
摘要:RTEMS目前多数采用nexus总线进行设备管理,但这是一种较老的方法,目前linux和FreeBSD都改为采用FDT(Flatten Device Tree)进行设备管理,无论是ARM还是PowerPC等。接下来讲讲如何在RTEMS上实现FDT,以BBB为例:FDT... 阅读全文

posted @ 2017-07-04 15:46 sichenzhao 阅读(276) 评论(0) 推荐(0)

RTEMS-libbsd 实现beaglebone black USB驱动
摘要:libbsd是移植Freebsd的代码库,因此包含了USB的协议栈部分,因此我们要做的就是移植USB底层驱动程序。Beaglebone black 的AM335x处理器采用的是musb otg的设备管理模式,因此需要musb的驱动程序。下图是Freebsd关于AM33... 阅读全文

posted @ 2017-06-21 16:37 sichenzhao 阅读(420) 评论(0) 推荐(0)

RTEMS-libbsd 生成驱动设备firmware
摘要:最近在为rtems-libbsd添加无线网卡驱动,需要添加网卡的固件文件,本人所用的网卡芯片是rtl8188eu,接下来讲讲如何在rtems-libbsd中生成固件文件。首先固件文件生成是采用make-build system(吐槽一下,目前rtems-libbsd包... 阅读全文

posted @ 2017-06-20 20:08 sichenzhao 阅读(334) 评论(0) 推荐(0)

RTEMS-libbsd 解决无法使用中断问题
摘要:RTEMS-libbsd 是利用RTEMS内核,将freebsd作为一个库的系统。因此更加方便移植各种bsp支持,比如驱动等。但是在使用中断时,对于某些bsp,会出现中断无法使用的情况。比如本人在为beaglebone black移植USB驱动时,需要安装usb中断,... 阅读全文

posted @ 2017-06-18 15:05 sichenzhao 阅读(370) 评论(0) 推荐(0)

RTEMS中断不可使用printf-printf()为什么有重入和性能上的问题?
摘要:这个概念在嵌入式操作系统中比较重要,由于存在任务的调度,它实时系统,可剥夺型内核中是危险的,如同一个安静的水雷。可能会被触发,也可能安然无恙。由于它运行结果的不可预期性,会使系统带来隐患。printf()经常有重入解释不可重入函数不可以在它还没有返回就再次被调用。例如... 阅读全文

posted @ 2017-05-15 15:44 sichenzhao 阅读(186) 评论(0) 推荐(0)

RTEMS 源文件coding conventions
摘要:RTEMS 源文件编写规则:1. 参考Doxygen 编写规则,这个比较复杂,会另写一篇博文进行解释。2. 开头每个文件的简要说明,然后是许可证,参考如下:/** * @file * * @ingroup TheGroupForThisFile * * @brief ... 阅读全文

posted @ 2017-05-14 23:18 sichenzhao 阅读(190) 评论(0) 推荐(0)

导航