关于stm32的USB学习笔记之usbcore.c

#include <stm32f10x_lib.h> #include "usbreg.h" #include "usbcore.h" #include "usbuser.h" #include "usbcfg.h" #include "usb.h" #include "usb_hw.h" #include "usbdesc.h" #include "hid.h" #include "hiduser.h" #define _DEBUG_ #include "debug.h" #pragma diag_suppress 111,1441 //用来指示USB设备的状态 WORD USB_DeviceStatus; //用来存储设备的地址……

关于stm32的USB学习笔记之USB_HW.c

#include <stm32f10x_lib.h> #include <stm32f10x_map.h> #include "usbreg.h" #include "usbuser.h" #include "usbcore.h" #include "usb_hw.h" #define _DEBUG_ #include "debug.h" #define USB_EP_NUM 4 /*端点缓冲区的开始地址 *因为每个缓冲块都需要一个端点描术表 *而所有的端点描述表放在,USB缓冲区的首部 *此地址是相对于USB缓冲区的地址,我认为加上Offset更好些 *这里使用2个端点 *端点0与端点1 ……

使用STM32的USB模块中后对USB缓冲区的认识

最近在使用STM32的USB模块开发个项目,还以为挺简单,结果搞了快两天才把USB的包缓冲区的访问搞定,在此做个小总结吧。   STM32的USB模块包缓冲区有512B,但是在STM32的参考手册中的存储器映像中却表明0x40006000-0x400063ff,整整多了512B,怎么会这样呢,同时在尝试着编程时也遇到了一个问题: 在usb_core.c文件的Setup0_Process(void)这个函数中,有这么一段: uint16_t offset = 1;  if (pInformation->ControlState != PAUSE)   {     pInfor……

关于linux0.12临界资源的一点理解和猜测

       今天看代码时突然发现,好像看到linus在写代码时的一些准则了,再根据赵博士的一句话"内核开发者不可能总是关注这些细节问题的!“,然后参照自己的理解总结出来一些准则,本人初学,如果有问题还请留言指正。        1.在关于锁的操作上,希望是原子操作,所以不管什么先关中断再说        2.在互斥资源上,如果下面可能睡眠,那么先上锁再说,这点可以从inode.c中的read_inode函数中……

关于linux0.12文件系统目录大小的一个发现

今天看到empty_dir函数发现他并不是比较i_size==32来判断是否为空,而是去读所有的块来判断是否为空,然后就觉得很奇怪,不过总觉得事出必有因,翻来覆去的找了一下,终于有了点发现,去看了一下add_entry和sys_rmdir这两个函数终于发现了一个事实!那就是目录文件的大小只会增大不会减小。下面是实验的截图: 在这个实验里我们可以看到当我建立了test2 test3 test4四个文件后 test1目录变成了80,但是我删除这3个目录项后,test1目录并没有减少,这就说明了,在empty_dir中为什么li……

关于linux0.12中的add_entry中bread中的些猜测

今天看到文件系统namei.c中的add_entry部分了,发现一个问题 block = create_block(dir,i/DIR_ENTRIES_PER_BLOCK); if (!block) return NULL; if (!(bh = bread(dir->i_dev,block))) { i += DIR_ENTRIES_PER_BLOCK; continue; } de = (struct dir_entry *) bh->b_data; 可以看到,create_block也是就是当目录的i结点不存在时便会创建一个,而在create_block调用的_bamp(inode.c)函数,而bitmap函数中又调用了new_block(bitm……

uid gid euid egid详解

由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。关于SUID、SGID的问题也经常有人提问,但回答的人一般答得不够详细,加上曾经回答过两个网友的问题,还查了一些资料,决定整理成本文,以供大家参考。限于本人的水平问题,文章中如果有不当之处,请广大网友指正。 一、UNIX下关于文件权限的表示方法和解析 SUID 是 Set User ID, SGID 是 Set Group ID的意思。 UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到……

linux0.12中文件系统的一些理解

在看文件系统始终觉得有点理解不了,今天偶有所悟还是赶紧记下来为好!看文件系统时要搞清以下几点: 1.文件系统是用专门的工具来格式化的,也就是说内核中文件系统的代码是不含文件系统的初始化的。其实所谓的操作系统安装就是通过一个工具来制作文件系统然后将系统文件拷入最后再加个引导,但是这个过程比单纯的格式化要麻烦许多,因为安装时要制作根文件系统而不是仅仅格式化,但原理相似! 2.要搞明白在设备中,各种设备也是就i_node的,而这个i_node也……

我的初级muttrc配置

#设置邮件的编辑器 set editor="vim" #设置邮件的发送程序 set sendmail="/usr/sbin/exim4" set check_new = yes set timeout = 60 #将各个邮箱分类存储 set record="/home/findstr/.mail/sent" #发件箱 set postponed="/home/findstr/.mail/ponstponed" #延迟发件箱 set mbox="/home/findstr/.mail/inbox" #设置你有可能收到的信件的地址,这个个变量应该是一个正则表达式,以后再设 #set alternates= #此变用来显示邮件的……