自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (6)
  • 收藏
  • 关注

原创 【无标题】ubuntu添加文件到mkinitramfs命令生成的initramfs中

在qemu下使用gdb可以很方便地debug kernel,但是有时候需要虚拟机系统里面传输可执行文件或者kernel module。可以有很多种方法实现,这里介绍一种最简单是方式,直接将文件打包到initramfs中。本文演示在ubuntu系统上如何将一个文件打包到initramfs中。添加initramfs的钩子文件,该文件说明mkinitramfs命令如何把我们的文件添加到initramfs中。在/usr/share/initramfs-tools/hooks/目录下,添加一个新的文件,比如/u

2021-12-28 20:15:25 1481

原创 github的token使用方法

github的token使用方法今天从本地向github push代码发,失败了。错误消息如下:remote: Support for password authentication was remove on August 123, 2021. Please use a personal access token instead.原因是github不再使用密码方式验证身份,现在使用个人token。本文记录,如何生成token在命令行下怎样使用tokengithub如何生成token

2021-09-02 15:19:55 71652 8

原创 linux kernel signal机制(X86_64)

1. 概述应用程序注册信号,信号事件发生后,内核将信号置为pending状态,在中断返回或者系统调用返回时,查看pending的信号,内核在应用程序的栈上构建一个信号处理栈帧,然后通过中断返回或者系统调用返回到用户态,执行信号处理函数。执行信号处理函数之后,再次通过sigreturn系统调用返回到内核,在内核中再次返回到应用程序被中断打断的地方或者系统调用返回的地方接着运行。如果应用程序没有注册对应的信号处理函数,那么信号发生后,内核按照内核默认的信号处理方式处理该信号,比如访问非法内存地址,发生SI

2021-06-15 17:37:43 2007 4

原创 X86_64处理器系统调用机制在linux上的实现

syscall (X86)硬件机制X86 64位flat模式提供了快速系统调用硬件机制。使用syscall指令触发系统调用,CPU从用户态(Ring3)切换到特权态(Ring0),使用sysret指令,CPU从内核态切换到用户态。注意:sysret指令和iret指令是CPU从内核态切换到用户态的两种方式syscall 指令执行sysenter指令,发生系统调用时,CPU硬件执行以下动作:把MSR_LSTAR寄存器中的值加载到RIP寄存器,并把当前程序运行的下一条指令(即sysenter

2021-06-11 00:42:45 1261 6

原创 Qemu运行Linux0.01

1. windows模拟器运行Linux0.01三年前尝试过在windows上使用模拟器运行Linux0.01, 简单记录了一下操作过程,参考windows模拟器运行Linux0.01。2. Linux上使用Qemu运行Linux0.01在Linux机器上,使用Qemu运行Linux0.01,这部分工作国外很早就有人做过了,但是在国内,由于互联网管制,百度搜索里几乎没有相关的资料,为了学习者的方便

2017-08-19 22:38:33 2889

原创 Nuttx romfs与启动脚本rcS

稍等发表

2017-05-13 16:49:05 4164 2

原创 Nuttx 字符设备驱动

Nuttx采用VFS,和linux一样的设计思路,一切设备皆文件。Nuttx系统可以在nsh终端下通过”ls /dev”查看系统已注册的设备。对设备的操作就是对文件的操作。Nuttx下的设备驱动就是实现这种对文件操作的接口,屏蔽了对设备本身的访问的复杂性,呈现简单的接口,如open(), read(), write()等。字符设备是指在I/O传输过程中以字符为单位进行传输的设备,如键盘、鼠标、以及一

2017-05-11 22:20:18 3764

原创 Nuttx signal

Signal基本数据结构和信号掩码说明信号相关主要数据结构struct sigactq{ FAR struct sigactq *flink; /* Forward link */ struct sigaction act; /* Sigaction data */ uint8_t signo; /* Signal associ

2017-05-10 01:26:46 1632

原创 Nuttx 工作队列 work queue

在Linux操作系统中,工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。Nuttx操作系统中工作队列的实现和在Linux中类似,Nuttx在内核中创建了内核线程,用于调度执行工作队列中的任务,在工作队列中允许任务睡眠。Nutt

2017-04-19 14:26:23 2861

原创 Nuttx watchdog 看门狗

看门狗是Nuttx中实现的一种定时器,该定时器底层基于硬件定时器,通过设置硬件定时器的定时触发来驱动看门狗。看门狗为系统提供了精确定时执行回调任务的机制。注册底层硬件定时器注册硬件定时器系统在启动初始化过程中,通过void up_initialize(void)函数调用void up_initialize(void),在up_initialize()函数中初始化硬件定时器,作为watchdog的底层

2017-04-18 12:03:36 1291

原创 Nuttx FS

This article present how the FS in Nuttx works, we will use fat fs as the example to explain it, at the last, this article shows the mount process of MMC block driver.inodeinode is one of the basic dat

2017-04-17 16:26:57 982

原创 Nuttx操作系统信号量Semaphore

Nuttx 操作系统信号量SemaphoreNuttx系统中采用信号量来同步线程,保护临界资源。与linux系统中对信号的使用方法类似,Nuttx系统中对信号量的操作包括以下几种:sem_initsem_waitsem_postsem_trywaitsem_timedwaitsem_getvaluesem_destory上面的方法是对信号量操作的基本方法。Nuttx系统还提供了对”有名”

2017-04-17 14:38:09 2036

原创 Nuttx mount SD card

config Nuttx ROTS to support SD card for stm32

2017-03-29 21:47:44 1307

原创 6410 linux DM9000收包机制

中断接收DM9000网卡注册的中断函数为dm9000_interrupt(),该中断函数调用dm9000_rx()从网卡的buffer中读取接收到的数据,将数据接收到skb中之后,调用netif_rx()处理该数据包,最后的结果是将数据包传递给上层处理。我们看看netif_rx()函数代码主要部分:int netif_rx(struct sk_buff *skb){ int ret;

2016-08-11 23:40:30 1045

转载 STM32实现Pixhawk PPM

功能: 将遥控器输出并行(8通道)信号转换成 pixhawk 可以识别的串行(1通道)信号主控: stm32f103c8t6输出频率: 50Hz 固件更新方式:串口更新PPM固件。将来升级成USB更新方式。参考网址:https://item.taobao.com/item.htm?spm=686.1000925.0.0.r5TFEg&id=533239444703可在参考网址中和卖家联系获取

2016-06-06 00:25:17 5699

原创 windows install libusb driver

下载libusblibusb 可以从 http://libusb-win32.sourceforge.net 处下载,32位系统和64位系统均可以用,例如下载libusb-win32-bin-1.2.6.0。安装下载文件后解压缩,进入libusb-win32-bin-1.2.6.0\bin目录,运行inf-wizard.exe,选择你将要安装驱动的USB的VID和PID,为该USB生成inf(inf

2016-06-06 00:08:47 14919 11

原创 STM32 USB 上位机程序实现

libusb 介绍libusb是开源的C库,使用该库是的用户可以在应用程序中直接访问 USB 设备,无需为 USB 设备编写内核驱动。libusb支持多个平台 (linux, window, ios),所以可以很方便地将应用程序移植到其他平台。linux libusb 安装从网上下载libusb的源码,下载地址:http://www.libusb.org/, 下载后编译安装。 # tar jxvf

2016-04-02 12:42:02 21673 10

原创 STM32 USB HID 自定义设备 bulk 传输

STM32 USB HID 自定义设备 bulk 传输ST(意法半导体公司)为STM32系列处理器编写了外设USB的库,并提供了很好的参考例程,本文就是参考ST提供的例程,在STM32F4 discovery板子上实现usb bulk传输。Host端是在linux平台上利用libusb库函数写的读写USB应用。本次实现在STM32 USB例程中的Device HID 鼠标例程基础上添加bulk传输端

2016-04-02 00:17:00 29289 16

原创 C、C++混合编程

1. C++调用C函数    主函数main.cpp调用add.c。关键在于在*.cpp文件中对*.c文件中的函数的声明。// add.c#include "add.h"int add(int a, int b){ return a + b;}// add.h#ifndef _ADD_H#define _ADD_H#ifdef __cplusplusexter

2015-02-03 09:19:51 606

转载 use of Linux0.11 emulator

使用boch仿真器在x86 PC平台上搭建Linux0.11系统环境(windows下)当你有机会来到这页面时   十有八九是遇到这样一个问题    执行配置文件bochsrc_fd.bxrc时出现找不到 ips的情况!版本原因吧   将boch版本换成2.4的问题就迎刃而解了~简单说说步骤:第一步:安装boch-2.4.exe我已经帮你找好

2014-04-12 18:31:23 1150

原创 LIS3D20L的配置

意法半导体做的这个加速度传感器,能够测得3维加速度。其内部有配置寄存器,数据寄存器和状态寄存器。这些大家可以看看数据手册。我只说说我在应用中遇到的问题,或许和您遇到的问题一样,希望能给您提供帮助。 芯片经过简单地配置,就能输出数据到X,Y,Z的三个数据输出寄存器中,通过SPI读取这三个数据寄存器就可以得到各个方向的加速度值。读取数据可以通过查询STATUS寄存器的状态来确定是否有数据更新,

2013-08-18 22:32:21 1013

原创 STM32系列之SPI_NSS的理解

之前也是对SPI的NSS一头雾水,看其他手册上说的NSS就是片选信号。大多数的SPI从机的片选有效为低电平,当某一从机的NSS引脚为低电平时,该机被选中,就可以和主机通过SPI通信了。所有的主机和从机其实都有片选信号,只有片选了,才能工作。但是主机的片选是通过软件配置完成的,读完下面的几段,希望能给您说清楚。在STM32中,当要配置为slave时,只要将它的NSS引脚配置为低电平即可。那么如果

2013-08-11 14:22:29 40427

linux0.01 qemu文件

在linux机器上,通过qemu运行linux0.01操作系统

2017-08-19

sp racing f3 circuit

sp racing f3 circuit

2017-05-28

stm32f103实现Pixhawk PPM

使用stm32f103实现PPM,亲测在Pixhawk飞控上可用

2017-05-05

STM32自定义HID设备块传输+libusb上位机程序

STM32 自定义HID 设备, 通过快传输接收上位机发来的数据。上位机使用Libusb库函数实现,接口简单。程序中添加了上位机接收数据的接口,USB 设备端的IN 接口也做好了,用户只要将需要发送给HOST的数据添加进去就可以了。博文地址: http://blog.csdn.net/chengwenyang/article/details/51039741

2016-04-02

STM32自定义HID块传输+libusb上位机程序

STM32 自定义HID USB 设备块传输例程,另外还有使用libusb 编写的上位机程序,通过上位机程序可以发送数据到 STM32 USB设备。用户自己添加发送数据接口,可以发送数据到上位机。

2016-04-02

atm6124.sys ATMEL AT91xxxxx Test Board 驱动

修复JLINK时,需要在XP环境下安装atmel的一个驱动,但是在XP下联网找不到驱动,只能自己安装。

2013-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除