SylixOS字符设备操作之open和close 在第一节我们学习过在应用层如何操作普通的文件,就是通过open、close、read、write这些接口,普通文件是存放在具体的存储设备上的,所以从某...
Liteos-a内核分析(一)
系统启动 1. 系统启动文件 系统启动文件为reset_vector_up.s ,在源码中的位置为kernel\liteos_a\arch\arm\arm\src\startup,在这个目录下有两个文...
VxWorks内核分析二(转)
原文:http://www.prtos.org/vxworks-wind-kernel/。 本文讨论Wind内核的设计思想,正如前文所述,VxWorks的Wind内核采用可裁剪的微内核设计,具有多任务...
SylixOS BSP开发(九)
实现串口SIO驱动(一) 在SylixOS中,不管是调试串口还是通信串口都是以TTY设备的形式注册到内核中使用,每一个串口设备都在/dev/ 目录下有一个对应的ttyS* 设备名的设备: BSP在启动...
RISCV基础开发(一)
指令集和寄存器 1. 写在前面的话 本系列文章旨在通过十几个裸机程序开发逐渐熟悉RISCV架构,包括其重要的系统寄存器使用方式、中断和异常处理机制等等。本系列不是RISCV汇编语言教程,不会专门的讲解...
全志D1开发(十二)网络驱动之网络硬件PHY初始化
1. 网卡PHY操作集 和SD卡驱动讲解一样,我们不会对全志D1的MAC和PHY寄存器做深入的讲解,同样只关心通用的处理流程和一些必要的设置思想,具体的细节请查阅数据手册和源码。 SylixOS下对P...
Xv6内核分析(三.7)
main函数之consoleinit devsw用来表示一个设备,xv6下最多有10个设备。其中console是第1个设备: consoleinit函数很简单,就是初始化了devsw中的读写操作函数指...
Apple史诗级DFU漏洞分析
1. 概述 国外黑客通过研究苹果更新的补丁发现了一个史诗级的漏洞,该漏洞存在于从A5到A11的大部分iPhone、iPad等苹果设备中。这些设备的BootROM在设备DFU模式时处理USB数据流程方面...
SylixOS 多核SMP BSP开发(二十)
多核唤醒简介 在开始多核BSP开发之前,我们需要思考两个问题:第一个是各个cpu核不管是主核还是从核是如何开始执行指令的,也就是如何唤醒它们让其开始工作;第二个问题是各个cpu核怎么知道它要执行的第一...
RISCV基础开发(十一)
QEMU裸机开发之M模式定时器中断 定时器相关的寄存器也是定义在clint中的,再来看下寄存器映射,如下所示。 同样的我们只关心第一个核的寄存器,和定时器相关的总共就两个寄存器,“mtime”寄存器相...
SimpleOS开发(8)改进进程调度
1. 系统接口名称修改 为了方便使用系统接口以及辨识系统接口,需要将系统接口的命名进行规范。这里的系统接口是指通用功能接口,比如开关中断、申请释放内存等等,simpleos采用简单的"os_"前缀来命...
Xv6内核分析(十)
spinlock分析 1. initlock spinlock分析spinlock: 主要是初始化锁的状态为0,并记录锁的名字用于调试分析。 2. pushcli和popcli 在xv6中,用spin...