嵌入式Linux中文站

嵌入式Linux系统在线升级策略

阅读(131)

由于市面上大多数嵌入式设备的分散、数量庞大、部署地点情况复杂,因此对于这些设备进行个体、本地升级的实施非常费时费力。针对这种现状,本文提供一种对基于 Linux 系统的嵌入式设备进行在线、远程、批量升级的策略,通过 web 页面对设备状态、升级过程可视化展示,大大提供升级效率。 嵌入式 Linux 系统在线升级策略 对于运行 Linux 系统的嵌入式产品,很多时候我们发现了当前版本内核、驱动、或者应用程序的 bug 并对之修复之后,或者研发出了功能更丰富、性能更突出的应用软件时,想要对当前运行的设备进行相

Linux中的Printk与dmesg功能

阅读(73)

要将linux内核的带级别控制的printk内容打印出来,在命令行输入 dmesg -n 8 就将所有级别的信息都打印出来。 Linux命令:dmesg 功能说明:显示开机信息。 语 法:dmesg [-cn][-s 缓冲区大小] 补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。 参 数: -c 显示信息后,清除ring buffer中的内容。 -s缓冲区大小 预设置为8

内核日志及printk结构浅析

阅读(201)

预定义的内核log等级 // include/linux/kern_levels.h #define KERN_SOH \001 /* ASCII Start Of Header */ #define KERN_SOH_ASCII \001 #define KERN_EMERG KERN_SOH 0 /* system is unusable */ #define KERN_ALERT KERN_SOH 1 /* action must be taken immediately

仿照linux dpm机制,实现自己的dpm

阅读(107)

在好多实时操作系统中,并没有dpm这个框架,所以我们可以仿照linux的dpm框架,来实现我们自己的dpm,可以运用到需要dpm的系统中。 知识点:链表,回调函数,函数指针,互斥锁,锁中断 为便于描述,本文使用伪代码,仅个别地方具体实现; 1、首先,我们需要定义两个结构体类型,一个用于控制,一个用于各个模块注册; (1)控制结构体 struct my_dpm{ list_head dpm_list; list_head prepare_list; list_headearly_list; list_hea

Linux中电源管理接口

阅读(165)

1. 前言 Linux电源管理中,相当多的部分是在处理Hibernate、Suspend、Runtime PM等功能。而这些功能都基于一套相似的逻辑,即Power management interface。该Interface的代码实现于include/linux/pm.h、drivers/base/power/main.c等文件中。主要功能是:对下,定义Device PM相关的回调函数,让各个Driver实现;对上,实现统一的PM操作函数,供PM核心逻辑调用。 因此在对Hibernate、Suspend

你知道操作系统何时运行?

阅读(88)

请各位思考以下问题:在你阅读本文的这段时间内,计算机中的操作系统在运行吗?又或者仅仅是 Web 浏览器在运行?又或者它们也许均处于空闲状态,等待着你的指示? 这些问题并不复杂,但它们深入涉及到系统软件工作的本质。为了准确回答这些问题,我们需要透彻理解操作系统的行为模型,包括性能、安全和除错等方面。在该系列文章中,我们将以 Linux 为主举例来帮助你建立操作系统的行为模型,OS X 和 Windows 在必要的时候也会有所涉及。对那些深度探索者,我会在适当的时候给出 Linux 内核源码的链接。 这里有一

Linux编程之ioremap函数的实例解析

阅读(137)

void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) 入口: phys_addr:要映射的起始的IO地址; size:要映射的空间的大小; flags:要映射的IO空间的和权限有关的标志; 功能: 将一个IO地址空间映射到内核的虚拟地址空间上去,便于访问; 实现:对要映射的IO地址空间进行判断,低PCI/ISA地址不需要重新映射,也不允许用户将IO地址空间映射到正在使用的RAM中,最后申请一 个

Linux内核访问外设I/O资源的方式

阅读(131)

我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。 Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc)。 一、动态映射(ioremap)方式 动态映射方式是大家使用了比较多的,也比较简单。即直接通过内核提供的ioremap函数动态创建一段外设I/O内存资源到内核虚拟地址的映射表,从而可以在内核空间中访问这段I/O资源。 Io