
嵌入式开发
挥剑踏苍穹
这个作者很懒,什么都没留下…
展开
-
RT-thread finsh移植到linux平台
目录FinSH介绍传统命令行模式C 语言解释器模式FinSH移植移植要点效果验证代码下载参考在一次项目中, 需要进行嵌入式操作系统选型, 需求就是选择一款OS,既能满足当下项目的需要,又要考虑公司未来对物联网应用的扩展能力,对比了目前市面上流行的开源操作系统,诸如FreeRTOS,RTX,UCOS,RT-Thread,contiki等, 最终确定了一款Io...原创 2019-11-20 15:30:52 · 1880 阅读 · 0 评论 -
RT-Thread内核源码分析-消息队列实现原理
目录概念消息队列消息队列初始化消息队列-发送消息消息队列-读取消息总结概念消息队列本质上是存放消息的链接表,存放在内核中,内核通过维护这个链表来维护消息队列。 消息队列的初始化就相当于创建一个空闲的链表, 能够存放一定数量的消息;向消息队列发送消息,就是向这个链表中插入一个新节点;从消息队列中都数据,实际就是从链表中删除一个节点。消息队列消息队列结构体如下...原创 2019-11-20 15:27:01 · 1341 阅读 · 0 评论 -
RT-Thread内核源码分析-信号量实现原理
目录概念信号量基本操作信号量初始化获取信号量释放信号量总结概念信号量机概念是由荷兰科学家Dijkstr(就是解决了最短路径问题的那哥们)引入,它是用来协调不同进程间的数据对象的,信号量本质上而言是一个计数器, 记录了某个资源的存取情况, 用来为多个进程共享的数据结构提供受控访问。 在不同的操作系统平台,都有信号量的实现, 虽然各个平台在实现上和概念上有些区别, 却始...原创 2019-11-20 15:27:16 · 1302 阅读 · 0 评论 -
从需求的角度去理解Linux系列:总线、设备和驱动
转载:https://blog.youkuaiyun.com/yueqian_scut/article/details/48687127转载 2019-06-05 14:19:28 · 196 阅读 · 0 评论 -
openwrt 网页sysupgrade刷固件流程
一次偶然的机会,阅读了openwrt网页升级的实现细节,以实际操作流程,结合网络资料,整理了这篇流程。 本文按照网页升级固件时涉及到的各个模块的先后顺序进行介绍,openwrt 固件的升级功能流程,从页面传入升级文件到升级文件检测,再到调用升级脚本进行升级,升级完成后,进行系统重启。 在实际阅读系统脚本时,会发现网上的资料可能和手上的代码有所区别,这是版本不同一...原创 2018-09-21 22:34:47 · 21089 阅读 · 0 评论 -
树莓派3B+刷openwrt总结
目录前言1. 刷openwrt img1.1 下载img1.2 烧写img2. 编译openwrt源码,为树莓派定制固件2.1 下载openwrt源码2.2 安装编译工具和依赖2.3 openwrt裁剪配置2.4编译3. 参考前言本文介绍两种为openwrt刷写固件的方式,第一种是下载官方或第三方已经编译好的openwrt固件(即...原创 2018-10-15 23:39:36 · 35789 阅读 · 24 评论 -
Nginx 相关介绍(Nginx是什么?能干嘛?)
本文转载自:https://www.cnblogs.com/wcwnina/p/8728391.htmlNginx的产生没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resource...转载 2019-04-19 16:14:29 · 154 阅读 · 0 评论 -
一款跨平台的c语言内存泄漏检测工具
在嵌入式开发中,内存泄漏是非常常见而又难以发现的问题,而且对于开发人员来说, 也会经常面临同一套代码在linux,rtos等不同平台进行移植开发的情况。在基于linux开发时,我们可以借助valgrind、mtrace、dmalloc等工具来发现潜在的问题,这些工具功能强大,需要掌握一些调试使用技巧,对于初学者而言还是需要花费一番功夫的;而在rtos等平台开发时,第三方工具往往就...原创 2019-02-27 14:27:23 · 1084 阅读 · 1 评论 -
arm汇编指令与机器码对应分析
转载:https://www.cnblogs.com/51qianrushi/p/4614491.html我们编写的汇编程序还是不够底层,CPU都是对机器码进行操作的,所以还需要用汇编器将汇编代码转换成机器码才能被CPU处理。下面举几个例子来说说分析ARM机器码的方法。 对编译连接之后得到的ELF进行反汇编:arm-linux-objdump 查看得到的反汇编代码。这里如果想...转载 2019-04-25 11:41:29 · 5651 阅读 · 1 评论 -
二叉树操作 递归与非递归实现
采用递归的方式创建如下二叉树; 输入'#'代表当前子树结束。#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct btn{ struct btn * lchild, *rchild; char data;}btree, *BT;...原创 2019-05-10 16:59:55 · 267 阅读 · 0 评论 -
进程中堆栈向下增长的原因
进程中堆栈向下增长的原因http://www.cnblogs.com/Quincy/archive/2012/03/27/2418835.html我们都知道X86系统进程中堆栈都向下增长的,那为什么是向下增长呢?“这个问题与虚拟地址空间的分配规则有关,每一个可执行C程序,从低地址到高地址依次是:text,data,bss,堆,栈,环境参数变量;其中堆和栈之间有很大的地址空间空闲着,在需...转载 2019-05-13 10:41:34 · 527 阅读 · 0 评论 -
数组指针与指针数组
int *a; // 一个整形指针, 本质上属于指针;int a[5]; //一个非常普通的整形数组,本质上属于数组int *a[5]; // 指针数组, 和整形数组类似,本质上还是数组, 只不过数组的元素是5个整形指针int (*p)[5];// 数组指针, 一个指向数组的指针;本质上属于指针, 只不过这个指针非常特殊, 它指向一个数组;#include <s...原创 2019-05-06 16:38:06 · 207 阅读 · 0 评论 -
linux环境tcp/ip错误码
基于 UNIX 的环境中的 TCP/IP 用户,下表列出了某些最常见的错误原因码 (errno)。完整的错误列表可以在文件 /usr/include/sys/errno.h 中找到 Errno。针对每一种操作系统给出了errno 号码。Errno AIX HP-UX Solaris UnixWare Linux 说明 EINTR 4 4 ...原创 2019-08-27 16:21:46 · 1150 阅读 · 0 评论 -
HTTPS原理和CA证书申请(满满的干货)
转载自paoge2815的一篇文章,将https原理和CA证书讲解的非常透彻。众所周知,WEB服务存在http和https两种通信方式,http默认采用80作为通讯端口,对于传输采用不加密的方式,https默认采用443,对于传输的数据进行加密传输目前主流的网站基本上开始默认采用HTTPS作为通信方式,一切的考虑都基于对安全的要求,那么如何对自己的网站配置HTTPS通信,是本文着重介...转载 2019-08-15 14:25:19 · 530 阅读 · 0 评论 -
RT-Thread内核源码分析-rt_system_scheduler_start与rt_schedule区别
rt_system_scheduler_start 与rt_schedule的区别 rt_system_scheduler_start:用于启动RT-Thread内核调度器,该函数是不会返回的,在该函数调用之前创建的线程是不会被调度的。 rt_schedule: 触发内核调度操作, 用于从一个线程切换到另一个线程。...原创 2019-05-13 14:57:49 · 1583 阅读 · 2 评论 -
RT-Thread内核源码分析-线程栈结构分析
RT-Thread提供了一套满足POSIX标准的接口,因此基于RT-Thread编写的应用程序,可以相对轻松的移植到linux平台。 pthread_create接口用来创建一个线程, 接下来我们基于pthread_create来分析动态分配的数组时如何作为线程栈来使用的。int pthread_create(pthread_t *tid, ...原创 2019-05-13 15:07:36 · 1679 阅读 · 0 评论 -
RT-Thread内核源码分析-优先级反转代码实现
目录优先级反转概念如何解决优先级反转优先级继承代码实现分析优先级反转概念 优先级反转是指一个低优先级的任务持有一个被高优先级任务所需要的共享资源。高优先任务由于因资源缺乏而处于受阻状态,一直等到低优先级任务释放资源为止。而低优先级获得的CPU时间少,如果此时有优先级处于两者之间的任务,并且不需要那个共享资源,则该中优先级的任务反而超过这两个任务而获得CPU时间。如果...原创 2019-05-13 16:10:20 · 1528 阅读 · 0 评论 -
PID控制及整定算法
转载自https://www.cnblogs.com/steed/p/7808303.html一、PID控制算法 PID是比例、积分、微分的简称,PID控制的难点不是编程,而是控制器的参数整定。参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解。阅读本文不需要高深的数学知识。注:整个控制流程是PID控制器函数与被控对象的传递函数、一个...转载 2019-03-25 19:10:46 · 14532 阅读 · 1 评论