- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 ecos内存分布
站在内存管理的角度看eCos操作系统,就是一个进程。eCos系统中只有线程概念(任务),并没有进程概念。整个内存规划简单看就是一个进程的内存分布。既然一个进程,内存中会有text、data、bss、heap段等。💡 eCos线程的栈就是一块buf(内存),可以是全局buf,也可以从heap上申请。eCos再我所在的公司目前用在家用路由器产品中,可以看到内存基本都是在服务协议栈mbuf这块。而供给驱动(kmalloc)内存较少,而且目前内存模块老旧,不支持slab等先进内存分配机制。
2024-07-06 17:53:21
615
原创 RTOS上移植mqtt broker(mosquitto)
MQTT Broker(mqtt代理服务器),负责管理和转发消息,关于细节不在赘述。关于broker选型,需要考虑使用场景、性能、易用性和支撑的特性等。目前主流的mqtt broker有mosquitto、EMQX、HiveMQ、VerneMQ、Amazon AWS IoT Core等,由于需要跑在RTOS上,只需要简单转发消息即可,故选择mosquitto。
2024-07-06 17:51:09
1070
2
原创 驱动学习-环境搭建
准备系统接触linux驱动驱动和kernel,刚开始主要熟悉linxu驱动框架,不涉及相关硬件(后续可能会学习ARM或RISC-V)。此时该公钥永久添加到MOK,后续可以使用该密钥签名kernel模块在ubuntu主机上调试。行定义了 MOK 主要可识别的名称,因此请在其中输入想要的任何内容。以上,insmod失败是由于hello.ko没有签名,被拒绝加载。make后生成hello.ko,使用insmod导入,出现错误。,在提示时输入之前与此请求关联的密码,并确认注册。
2024-07-06 17:48:49
552
原创 netif_receive_skb解析
netif_receive_skb简介netif_receive_skb作用:把接收帧传给每个协议分流器把接收帧传给skb->protocol所关联的L3协议处理函数。负责L2必须的功能处理如果某接收帧数据没有关联skb->protocol,而且L2没有处理该帧,kernel不知道如何处理该帧数据,会将起丢弃。skb->protocol:一般由驱动接收程序赋值,从L2层设备驱动程序的角度看,就是用在下一个较高层的协议。如:IP、IPv6以及ARP等;值在include/l
2021-11-01 19:25:42
4273
原创 BCM以太网驱动初始化简要
环境BCM6756驱动程序。驱动初始化源码路径:bcmdrivers/opensource/net/enet/impl7/以下为BCM网卡驱动初始化的概要。初始化工作主要在bcm_enet_init_post函数中,该驱动适配了支持设备树和不支持设备树两种,不支持设备树的情况下,bcm_enet_init直接调用bcm_enet_init_post完成网卡驱动的初始化。bcm_enet_init(); /* 注册网卡设备(设备树),在prob函数中调用bcm_enet_init_post *
2021-10-27 11:26:24
1905
原创 嵌入式linux系统时区
背景嵌入式系统中,一般情况下使用精简的问题系统,系统默认为UTC时间,也就是0时区。为了保证系统时间正常,使用时间同步协议如:SNPT等获取获取时间的基础上在中国地区(东八区)加8小时配置为本地时间。这样,程序中使用时间函数获取的时间是OK的。但是,使用date -R命令看到是UTC时区。思路使用date命令Thu Oct 21 10:10:45 UTC 2021使用date -R命令Thu, 21 Oct 2021 10:11:51 +0000如果使用UTC时间加把小时作为本地时
2021-10-21 11:08:33
1390
1
原创 树莓派4B上安装OpenWrt/LEDE
简介LEDE(Linux Embedded Development Environment),LEDE可能大家不太熟悉,但是OpenWRT应该如雷贯耳。LEDE和OpenWRT的渊源颇深。关于OpenWRT的发展史这里不做详细描述了,由于OpenWRT的一些规则过于老套。有人想试试新的规则和方法,然后就有了LEDE。LEDE是16年5月从OpenWRT fork出来的,并继承原OpenWRT的开发目标。如今LEDE支持很多协议和硬件设备,可以直接编译和安装使用,如文字提到的树莓派4B。2018年1月LE
2021-09-23 23:21:11
2556
原创 linux脚本定时执行
简介crontab命令编辑内容由crond守护进程执行,crond守护进程每分钟检查一次需要运行的crontab计划,如果有需要运行的crontab,则执行它。crontab针对每个用户的。每个用户都有一个可编辑的crontab(可以使用crontab -e 命令编辑)。crontab命令详解crontab -e (edit user's crontab)crontab -l (list user's crontab)crontab -r (delete user's crontab)cro
2021-09-03 16:18:41
141
原创 Gitlab安装与配置
Gitlab安装为什么选择使用gitlab呢?对于学生时代的编码,都使用拷贝重命名来备份代码(当时我是这样搞的),可以说是苦不堪言。好多大一点的公司,使用SVN管理代码,因为SVN早于git普及。而且使用简单。从项目计划和源代码管理到CI/CD和监控,GitLab是整个DevOps生命周期的单一应用。只有GitLab允许并行的DevOpes,使得软件生命周期200%更快。這里的CI/CD其实指的是持续集成(CI)和持续交付(CD)。有关CI/CD不在这里展开讨论。本文主要介绍Gitlab的安装。该
2021-06-23 18:58:36
501
原创 RouterOS IPv4转IPv6环境搭建
需求分析现在国内的运营商都已经普及了IPv6环境,没必要使用6to4。只需要给运营商打电话就可以搞定。这篇文章主要介绍在只有IPv4的环境中,如何在局域网中始终IPv6环境。环境准备需要有公网IPv4环境(电信可以直接给运营商打电话转成公网IP)RouterOS具体操作1. 在https://www.tunnelbroker.net/网站申请一个账号注册账号详细过程省略。2. 选择 Create Regular Tunnel创建路由。填入自己的公网IP,这里填入的IP必须可以使用外
2021-06-22 16:57:57
2264
2
编译kernel是遇见的错误和解决方法
编译kernel是遇见的错误和解决方法首先介绍下openssl,openssl是web安全通信的基石,SSL全名叫secure socket layer(安全套接字库层),openssl是对SSL的实现。通过make编译高版本的kernel时会出现如此错误:scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: No such fi...
2020-10-26 22:10:02
2725
原创 使用Yocto构建i.MX8 MM
主机需求因为在Ycoto构建的过程中需要从网络上下载资源包,需要占用大量的磁盘。亲测构建带有Qt5的文件系统需要占用120G+的容量,建议使用有200G以上空闲区域的硬盘。需要安装的必备软件sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath so...
2020-03-12 17:56:00
1041
原创 debian 安装后的简单配置
1.需要添加sudo 权限切换到root用户,修改/etc/sudoers文件su vi /etc/sudoers在# User privilege specificationroot ALL=(ALL:ALL) ALL下添加username ALL=(ALL:ALL) ALL2.安装和设置自动补全debian安装后无法自动补全中有详细的讲解。3.安装搜狗...
2020-02-29 14:36:50
473
原创 debian安装搜狗输入法
sudo apt-get install im-configsudo apt-get install fcitxlibqtwebkit4 libopencc2 libopencc1 zip fcitx-libs libfcitx-qt0
2020-02-29 14:24:42
2979
原创 debian安装后无法自动补全
1.安装补全命令apt-get install bash-completion2.修改配置文件/etc/profile,添加if [ -f /etc/bash_completion ]; then. /etc/bash_completionfi3.更行配置文件source /etc/profile...
2020-02-23 14:49:19
1020
原创 linux下nfs服务的安装
linux下NFS服务器的安装1.为什幺要安装nfs呢nfs的功能很强大,主要是进行文件共享的。上节中说了tftp服务的安装,嵌入式中主要是用来保存kernel镜像和设备文件等,可以方便的从u-boo TFTP中获取uImage和dtb等。nfs主要是用来挂在根文件系统的。2.安装步骤(1).安装nfs-kernel-server软件包命令:sudo apt-get install nf...
2019-12-24 15:27:19
944
原创 LINUX下TFTP服务器的安装
LINUX下TFTP服务器安装1. 什么是TFTPTFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务.TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的, 此协议设计的时候是进行...
2019-12-23 21:20:22
479
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人