
zephyr
酸菜鱼的鱼
Linux rtos 驱动应用开发 本博客主要用于工作学习的总结和备份,欢迎大家留言评论交流,谢谢
展开
-
zephyr概述
以下的截图,是为SDK中的代码,支持的板子和网络上描述的一样。Zephyr 基于linux和wind river是一款小型且可伸缩的实时操作系统,尤其适用于资源受限的系统,可支持多种架构; Zephyr 基于已使用十多年、久经实际应用考验的 Wind River 代码库而构建。扩展原始代码包括几个关键步骤。首先,通过重构提升模块化水平。在编译时,开发人员可按需采用或删除任何子系统以适应硬件...原创 2019-03-06 15:53:37 · 8235 阅读 · 0 评论 -
rtos:zephyr同步信号量
涉及到的配置选项和api:K_SEM_DEFINEk_sem_init()k_sem_give()k_sem_take()k_sem_reset()k_sem_count_get()信号量可以被一个线程或者是ISR进行一个given操作,即增加信号量的值,除非信号量的值达到了他的现状值。信号量可以被线程执行一个taken操作,即减少一个信号量的值,除非这个信号量等于0.几...翻译 2019-04-07 16:57:19 · 1077 阅读 · 0 评论 -
rtos:zephyr线程的调度接口
线程的创建,挂起和恢复等操作。原文地址链接:http://docs.zephyrproject.org/kernel/threads/lifecycle.html#thread-terminationzephyr线程操作的接口:K_THREAD_DEFINEk_thread_create();k_thread_abort();k_thread_suspend();k_th...翻译 2019-04-07 16:50:37 · 564 阅读 · 0 评论 -
rtos:zephyr同步互斥锁
配置选项和API:CONFIG_PRIORITY_CEILINGAPI:K_MUTEX_DEFINEk_mutex_init()k_mutex_lock()k_mutex_unlock()互斥锁在使用前需要初始化,并且初始化是为0.即没有上锁的状态。在多个线程访问共享资源时,使用互斥锁。互斥锁对象不是为ISR设计的。互斥锁的初始化:1.struct k_m...翻译 2019-04-01 16:43:01 · 619 阅读 · 0 评论 -
rtos:zephyr线程的自定义数据
每个线程都有一个自定义的32数据域,这个数据域自由线程能够自己访问。默认情况下是为0.通过配置 CONFIG_THREAD_CUSTOM_DATA使能自定义数据,因为默认情况下线程是不支持自定义数据的。通过调用接口 k_thread_custom_data_set() 和 k_thread_custom_data_get()接口写和读线程的自定义数据,只能访问自己的自定义数据而不能访问其他线程...翻译 2019-04-04 19:33:42 · 238 阅读 · 0 评论 -
rtos:zephyr线程操作的线程的生命周期
涉及的配置宏:Main thread:在内核的初始化时候执行,然后调用main()函数。Main thread 默认情况下是最高配置的可强占的优先级。如果内核没有配置为可强占的线程,main thread就会使用最低配置的cooperative thread。执行应用的main()函数;如果这个线程终止将引发致命的错误。Idle thread:当系统没有其他工作需要做...翻译 2019-04-04 19:28:24 · 1367 阅读 · 0 评论 -
rtos:zephyr的网络子系统的api接口介绍
初始化:在如果应用需要一个ipv4 的地址,如果一个DHCPv4被使能,应用程序开始之前,需要确定设备能够得到一个ipv4的地址。设置:在网络子系统中有多种选择,在应用开始之前工程里面需要一个配置文件,配置如:IP地址,IEEE802.15.4等。创建:创建一个TCP,udp的服务器和客户端。初始化:CONFIG_NET_APP_AUTO_INITCONFIG_NET_APP_INIT...翻译 2019-03-07 20:10:05 · 768 阅读 · 0 评论 -
rtos:zephyr同步alerts(通知)
alert可以同linux平台下的signal。alert的初始化:方法1:extern int my_alert_handler(struct k_alert *alert);struct k_alert my_alert;k_alert_init(&my_alert, my_alert_handler, 10);方法2:extern int my_ale...翻译 2019-03-09 10:03:22 · 343 阅读 · 0 评论 -
rtos:zephyr工作队列的初始化
工作队列的初始化:#define MY_STACK_SIZE 512#define MY_PRIORITY 5K_THREAD_STACK_DEFINE(my_stack_area, MY_STACK_SIZE);struct k_work_q my_work_q;k_work_q_start(&my_work_q, my_stack_area, ...翻译 2019-03-09 09:58:14 · 324 阅读 · 0 评论 -
rtos:zephyr网络子系统
网络子系统源代码布局:subsys/net/ip:IP 协议栈代码subsys/net/lib:DNS,mqtt,BSD等应用层的协议栈代码include/net:需要使用IP网络功能的头文件,应用程序需要包含的头文件。tests/net/:测试应用,主要是验证IP协议栈的功能。http://docs.zephyrproject.org/subsystems/networkin...翻译 2019-04-07 16:59:28 · 737 阅读 · 0 评论