- 博客(10)
- 资源 (15)
- 收藏
- 关注
原创 linux cdc_ether
1. 前言RNDIS: Remote Network Driver Interface Specification,既是RemoteNDIS,既是远程网络驱动接口规范。基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡。cdc_ether驱动在枚举时相对usb-serial要简单的多,因为usb-serial驱动在枚举时...
2018-04-18 22:35:35 13343 5
原创 ADC采样计算
1.首先确定ADC用几位表示,最大数值是多少。比如一个8位的ADC,最大值是0xFF,就是255。2.然后确定最大值时对应的参考电压值。一般而言最大值对应3.3V。这个你需要看这个芯片ADC模块的说明。寄存器中有对于输入信号参考电压的设置。3.要计算电压,就把你的ADC数值除以刚才确定的最大数值再乘以参考电压值。比如你ADC值为0x80,那么实际值就是0x80/(0xFF+1)*3.3V = 1....
2018-04-16 14:52:57 37946 2
原创 linux options
1. 前言 2.1的流程图主要完成两项工作,第一,将当前option驱动注册到usb总线上;第二,将当前option驱动注册usb-serial总线上,我原来不清楚这里为什么要分两次注册到不同的总线上(usb、usb-serial总线),其实这是当usb口接入一个设备时,设备是如何从usb总线跨到usb-serial总线。我们知道usb上的设备注册流程大概是:先是设备匹配-->接口匹配...
2018-04-15 16:42:21 3377
原创 linux uImage生成
简要: 有一个很简单的办法u-boot编译结束时,会在tool文件夹下面生成一个mkimage文件,将这个文件复制到交叉编译器目录下的bin文件夹下面,以后编译时就会生成uImage文件,省的用命令行的方式转了,否则就是内核在编译生产image后在使用mkimage工具打包生产uImage.mkimage在uboot源码下的路径:uboot/tools/*mkimage工具使用...
2018-04-14 10:54:29 1635
原创 linux 内核时间打印
struct timespec ts;ts = current_kernel_time();printk(KERN_ALERT "i=%d, channel=%d, %ld %ld\n", i, channel, ts.tv_sec, ts.tv_nsec);struct timeval tv;/*获取时间*/do_gettimeofday(&tv);printk(KERN_...
2018-04-13 10:37:13 4708
原创 nuc970 杂记
1. 系统内存映射表2. 上电前初始化的硬件管脚注意每个管脚上电时需配置对应的电平该功能才能生效!3. CPU主频300MHz与264MHz切换主要修改两个地方,第一个地址0xB0000264修改对应的频率,另个是0xB0001834是对应SDRAM的的延时时间。打印时钟的源码:static void print_clock_info(void){ int apll_clk, upll_clk...
2018-04-08 15:33:46 3269
原创 linux clk
1. 流程图2. 源码分析 本文以定时看门狗时钟分析,因看门狗的时钟源有四种可供选择,分别为:xin(12MHz)、xin128_div(12MHz/128)、pclk4096_div(76MHz/4096), xin32k(32.768K),下面逐个分析。2.1 涉及到的结构体固定频率的时钟结构体:struct clk_fixed_rate { struct clk_hw hw; ...
2018-04-06 15:04:00 1406
原创 linux watchdog
1. 定义定时器看门狗IWDG: 独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误;窗口看门狗WWDG:系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。这里只对定时器看门狗分析,不对窗口看门狗分析!!!2. 流程图3. platform_deviceplatform设备注册:static struct ...
2018-04-05 16:11:40 3139 1
原创 Linux几个调试宏__FUNCTION__ __TIME__ __LINE__ __FILE__ __DATA__
Linux几个调试宏__FUNCTION__ __TIME__ __LINE__ __FILE__ __DATA__这几个宏是编译器内置的,不是在哪个头文件中包含的直接上最简单的例子就好了,没必要多说。源码:[cpp] view plain copy#include <stdio.h> int main() { printf("The file is %s.\n",_...
2018-04-02 14:43:52 4687 2
原创 linux usb-serial options
1. 前言...2. 流程图3. usb serial源码分析3.1 usb serial驱动加载module_init(usb_serial_init);module_exit(usb_serial_exit);3.2 usb serial初始化static int __init usb_serial_init(void){ int i; int result; usb_seria...
2018-04-01 23:31:02 2439
http_client.txt
2019-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人