自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 论坛 (29)
  • 收藏
  • 关注

原创 linux kernel有线网卡驱动enc28j60分析 二

1、上一章节我们已经分析到中午处理函数会调度一个工作队列,将更多的处理交给了一个work去处理。接下来我们进一步分析中断下半部都做了些什么处理。static void enc28j60_irq_work_handler(struct work_struct *work){ struct enc28j60_net *priv = container_of(work, s...

2018-08-29 10:43:49 362 1

原创 linux kernel有线网卡驱动enc28j60分析 一

1、为了更好低学习linux的网络驱动架构,本文选择分析linux kernel下的有线网卡驱动enc28j60来学习网络驱动架构。enc28j60是一个10/100Mb的有线网卡,适用于嵌入式设备上进行网络通信,使用SPI接口与CPU进行通信。该驱动已经集成在linux kernel源码中,路径是driver/net/ethernet/microchip/enc28j60.c2、驱动入口...

2018-08-28 18:20:39 1003

原创 linux脚本获取参数个数

linux脚本众多,有bash、csh已经其他众多的*sh。 在各个版本的sh中,用法有一些不同。本次需求:获取脚本的个数,如果不满足制定个数,输出信息并退出bash写法:#!/bin/bashif [[ $# < "1" ]]; then echo Please input which directory to be don exit...

2018-08-16 15:40:47 6348 1

原创 ubuntu配置samba共享各自的用户目录

现在网上有很多配置ubuntu samb的教程,但是大都是共享一个固定的目录。我想配置成每个用户共享自己的用户空间,最终的配置文件如下:## Sample configuration file for the Samba suite for Debian GNU/Linux.### This is the main Samba configuration file.

2017-07-23 22:38:35 4098

原创 find 命令与exec配合使用

find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。看例子:find ./ -name "*.txt" -exec ls -l "{}" \;查找当前目录的.txt文件并以列表形式列出来 find ./ -name "*.txt" -exec mv "{}" "{}d" \;批量修改当前

2017-07-15 23:32:27 247

原创 移植全新的linux-3.5.0到Super4412(2)

将编译后的zImage烧写到开发板,串口打印done, booting the kernel.后没有其他反应了。bl decompress_kernelbl cache_clean_flushbl cache_offmov r0, #0@ must be zeromov r1, r7@ restore architecture numbermov r2, r8@

2017-06-03 17:13:09 375

原创 移植全新的linux-3.5.0到Super4412(1)

2017-05-24编译通过,烧写进板子后,显示如下,而且板子发烫。Superboot-4412 V2.5(20150923) by FriendlyARMBooting from eMMCUncompressing Linux... done, booting the kernel.

2017-05-24 22:56:51 526

原创 proc_mkdir与proc_create

1:创建proc文件夹struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *parent);参数1:name就是要创建的文件夹名称。参数2:parent是要创建节点的父节点。也就是要在哪个文件夹之下创建新文件夹,需要将那个文件夹的             proc_dir_entry

2016-05-09 22:13:09 7920

原创 32位arm-linux-gcc无法在64位系统上运行

很多开发板厂家提供的是32bits的编译器,而现在很多人使用的是64位linux,当解压编译器压缩包,并且加入到环境变量后,提示没有这样的文件等问题在Ubuntu 64上需要安装lib32ncurses5,使用如下命令:sudo apt-get install lib32ncurses5

2016-04-12 11:44:18 1171

原创 STM32F746 以太网初始化

STM32F7系列的MCU自带了MAC控制器,现在分析一下库函数中初始化的步骤:一、整体初始化的流程1、底层GPIO的初始化、时钟的开启,设置MAC与PHY的通信方式:MII或RMII2、使MAC模块复位一次3、获取SMI(MDC、MDIO组成)接口中的MII地址寄存器,要根据MCU的运行速度设置时钟范围,MDC的时钟频率是通过HCLK分频得到的4、通过SMI接口对PHY_BC

2016-03-26 23:20:40 3882

原创 NanoPC-T2 uboot分析(1)

在boards.cfg中,可以看到在该文件末尾定义Nanopi2/Nanopc开发板的一些属性# Status, Arch, CPU:SPLCPU, SoC, Vendor, Board name, Target, Options, MaintainersActive  arm         slsiap       s5p4418     s5p4418         nanopi2    ...

2016-03-18 22:53:53 1695

原创 NanoPC-T2 Linux Kernel对GPIO的初始化

之前在看NanoPC-T2 的Linux kernel中的以太网驱动程序发现,没有找到对以太网GPIO进行初始化的操作,感觉比较郁闷,今天对代码进行进一步分析,发现SOC的GPIO是统一进行配置的。在arch/arm/plat-s5p4418/nanopi2/board.c中有bd_gpio_init这个函数,而SOC每个引脚的作用是在arch/arm/plat-s5p4418/nanopi2/i

2016-03-16 15:16:19 1255

原创 ubuntu15.10 手动挂载U盘

当你插入U盘的时候,ubuntu会自动挂载U盘设备到/media/这个目录下,但是为了测试如何手动挂载U盘设备,我先将U盘umountsudo umount /media/mxj/KINGSTON 通过对比拔出U盘和插入U盘/dev目录下的设备变化情况,在我的电脑上发现是sdc为U盘设备文件,我的U盘是exfat格式的文件系统,因此我使用如下的命令进行挂载sudo mount

2016-03-16 11:30:06 598

原创 NanoPC-T2 以太网分析(3)

本章节用来介绍stmmac_dvr_probe函数过程。函数一开始就调用nxp_plat_initialize函数对MAC IP核复位、PHY复位、MAC IP核用到的时钟进行初始化,但是这部分做的事情跟注册MAC设备的时候nxpmac_init做的事情完全一样,所以这个函数做的事情就不再进行详细的介绍。紧接着申请stmmac_priv类型的变量,并对它进行各种的赋值。接下来最重要的是

2016-03-14 15:00:33 833

原创 NanoPC-T2 以太网分析(2)

在linux kerneldriver/net/ethernet/nxpmac目录下的代码是对S5P4418 SOC中的MAC进行初始化,该目录下仍然存在大量的stmmac其中在nxpmac_main.c中是这个驱动的入口,在这个源文件中存在module_init(stmmac_init);module_exit(stmmac_exit);在stmmac_init函数中调用stmm

2016-03-13 00:43:26 1359

原创 NanoPC-T2 以太网分析(1)

目的:友善之臂的NanoPC-T2的uboot是没有对网络进行初始化的,而在Linux kernel中进行初始化,现在要分析在Linux中对应的网卡驱动程序,移植到uboot上,以实现从远程使用tftp下载linux kernel镜像文件,而NFS网络文件系统是在linux kernel网卡进行初始化后才启用的,友善之臂提供的代码不会影响NFS的使用。1、由于S5P4418 SOC自带

2016-03-13 00:14:30 886

原创 tiny4412 uboot分析 (3)

uboot在加载到RAM执行后,跳转到main_loop中,然而main_loop最后调用的一个函数是parse_file_outer。在这个函数中进行解析我们设置的uboot环境变量。不管linux kernel最终加载成功,也不会再跳转回main_loop,中,如果加载失败,则会parse_stream_outer函数中的死循环中,并在parse_stream等待输入字符串命令并以回车结束

2016-03-10 22:05:25 326

原创 tiny4412 uboot分析(2)

在将uboot镜像文件加载到内存后,最终执行after_copy,在after_copy中会调用board_init_f,在board_init_f中,会调用一个非常重要的函数指针数组init_sequence,其中在init_sequence中的display_banner会显示uboot版本号、时间等信息,checkboard会显示板子名字,print_cpuinfo会显示CPU信息等。

2016-03-08 15:02:30 428

原创 tiny4412 uboot分析(1)

启动程序是用汇编写的启动代码,位于arch/arm/cpu/armv7/start.S,在reset中,首先执行如下操作:mrs r0, cpsrbic r0, r0, #0x1forr r0, r0, #0xd3msr cpsr,r0作用是使ARM进入管理模式,并且禁止IRQ和FIQ,清除状态标志位ARM程序状态寄存器(CPSR)可以参考http:

2016-03-07 22:00:30 646

原创 Linux内核层虚拟地址和物理地址转换函数

在Linux kernel中经常会用到物理地址跟虚拟地址的转换,先归纳如下:__va():从物理地址转换为虚拟地址;__pa():从虚拟地址转换为物理地址;

2016-03-07 21:57:43 1686

原创 查找当前目录下文件中包含关键字符串的文件以及行号

在查看uboot代码的时候,用到了如下的命令grep "CONFIG_SYS_TEXT_BASE" * "-nR"它的作用是在在当前目录以及下级目录的文件中查找CONFIG_SYS_TEXT_BASE字符串的文件,并显示行号

2016-03-05 00:16:04 516

转载 tar.xz文件的解压

XZ压缩最新压缩率之王xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。 之前xz使用一直很少,所以几乎没有什么提起。 我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。 最新一段时间会经常听到xz被采用的声音,像是最新的archlinu

2016-02-29 21:01:39 431

转载 ubuntu15.10 配置tftp

tftpd-hpa 是一个功能增强的TFTP服务器。它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统1、sudo apt-get install tftp-hpa tftpd-hpa xinetd2、建立配置文件sudo vi /etc/xinetd.d/tftp新建文件tftptftp内容:service tftp{d

2016-02-28 14:51:40 421

转载 linux中根据进程的PID值来查找执行文件的及其路径

lsof -p PID

2016-02-28 13:33:08 1470

转载 linux下查找包含关键字的文件

在linux下如果要查找包含某个关键字的文件,如要在/root/目录下搜索带有关键字“www”的文件,在终端下运行命令:find /root/ –type f |xargs grep “www”grep -r "test" /root/

2016-02-28 13:32:39 371

原创 查看Linux input子系统信息

如果要查看/dev/input目录下event对应的设备信息,则使用 cat /proc/bus/input/devices  查看,H: 对应的event即为事件编号如果要查看/dev/input/event*对应的信息,则可使用 hexdump /dev/input*  查看

2016-02-17 16:22:19 330

windows USB驱动和应用程序工程

这个工程采用官方WDF工程USB作为模板,添加一些本人的注释,使在学习USB驱动开发的过程中能够更方便

2015-05-15

c++ 创建新进程如何传递一个类作为参数?

发表于 2018-09-03 最后回复 2018-09-04

SIM5360 3G模块通讯数据阻塞问题

发表于 2018-07-15 最后回复 2018-07-17

linux mmap映射内存问题

发表于 2018-07-03 最后回复 2018-07-13

Proc节点的问题

发表于 2018-03-11 最后回复 2018-03-12

C51如何定义32bits变量

发表于 2015-09-29 最后回复 2017-12-28

uboot.bin和uboot_spl.bin的区别

发表于 2017-07-18 最后回复 2017-08-13

linux内核裁剪make的时候弹出silentoldconfig

发表于 2017-05-16 最后回复 2017-07-18

STM32如何禁止通过JTAG或SWD读取flash

发表于 2015-10-28 最后回复 2017-07-11

linux Makefile下ifeq不起作用

发表于 2016-03-06 最后回复 2017-05-16

linux EEPROM驱动的问题

发表于 2016-04-01 最后回复 2017-05-16

使用路由器的设备如何进行互联网通信

发表于 2016-01-26 最后回复 2016-03-06

I2S 读写控制

发表于 2016-01-26 最后回复 2016-03-06

电脑通过路由器与互联网的通信IP方式

发表于 2016-02-18 最后回复 2016-03-06

USB端点的问题

发表于 2015-08-28 最后回复 2016-03-06

MDK 在链接脚本中添加SDRAN section的问题

发表于 2015-12-07 最后回复 2016-02-01

CAN收发器 CANH和CANL输出波形一致的问题

发表于 2015-12-03 最后回复 2016-01-19

C# EXCEL创建和保存

发表于 2015-09-28 最后回复 2015-12-02

USB通讯时USB设备主动发送给USB主机的过程

发表于 2015-05-11 最后回复 2015-10-08

STM32 IAP程序编写

发表于 2015-09-16 最后回复 2015-09-28

WPF CheckBox无法后台控制选中和不选中

发表于 2015-09-23 最后回复 2015-09-28

C# XML文件读取

发表于 2015-09-08 最后回复 2015-09-16

VS2013和WDk8.1开发windows驱动的问题

发表于 2015-05-27 最后回复 2015-08-04

WPF DataGrid删除一行无法更新的问题

发表于 2015-05-22 最后回复 2015-05-22

WPF 窗口如何刷新?

发表于 2015-05-21 最后回复 2015-05-22

关于ENC28J60发送大量的数据网络调试助手接收不到的问题

发表于 2013-08-06 最后回复 2015-05-11

关于uip0.9+ENC28J60与台式机传输数据的问题

发表于 2013-07-31 最后回复 2015-04-20

有谁用过比亚迪的BF6921A这个触控芯片

发表于 2013-09-06 最后回复 2013-11-23

keil中不同源文件中数组的引用

发表于 2013-07-26 最后回复 2013-07-27

ENC28J60发送数据的问题

发表于 2013-07-17 最后回复 2013-07-26

空空如也

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

TA关注的人 TA的粉丝

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