自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

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

2018-08-29 10:43:49

阅读数 183

评论数 1

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

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

2018-08-28 18:20:39

阅读数 423

评论数 0

原创 linux脚本获取参数个数

linux脚本众多,有bash、csh已经其他众多的*sh。 在各个版本的sh中,用法有一些不同。 本次需求:获取脚本的个数,如果不满足制定个数,输出信息并退出 bash写法: #!/bin/bash if [[ $# < &am...

2018-08-16 15:40:47

阅读数 3728

评论数 1

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

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

2017-07-23 22:38:35

阅读数 2821

评论数 0

原创 find 命令与exec配合使用

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

2017-07-15 23:32:27

阅读数 181

评论数 0

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

将编译后的zImage烧写到开发板,串口打印done, booting the kernel.后没有其他反应了。 bl decompress_kernel bl cache_clean_flush bl cache_off mov r0, #0 @ must be zero mov r1, r7 ...

2017-06-03 17:13:09

阅读数 340

评论数 0

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

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

2017-05-24 22:56:51

阅读数 442

评论数 0

原创 proc_mkdir与proc_create

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

2016-05-09 22:13:09

阅读数 5914

评论数 0

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

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

2016-04-12 11:44:18

阅读数 702

评论数 0

原创 STM32F746 以太网初始化

STM32F7系列的MCU自带了MAC控制器,现在分析一下库函数中初始化的步骤: 一、整体初始化的流程 1、底层GPIO的初始化、时钟的开启,设置MAC与PHY的通信方式:MII或RMII 2、使MAC模块复位一次 3、获取SMI(MDC、MDIO组成)接口中的MII地址寄存器,要根据MC...

2016-03-26 23:20:40

阅读数 3205

评论数 0

原创 NanoPC-T2 uboot分析(1)

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

2016-03-18 22:53:53

阅读数 1560

评论数 0

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

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

2016-03-16 15:16:19

阅读数 1144

评论数 0

原创 ubuntu15.10 手动挂载U盘

当你插入U盘的时候,ubuntu会自动挂载U盘设备到/media/这个目录下,但是为了测试如何手动挂载U盘设备,我先将U盘umount sudo umount /media/mxj/KINGSTON  通过对比拔出U盘和插入U盘/dev目录下的设备变化情况,在我的电脑上发现是sdc为U...

2016-03-16 11:30:06

阅读数 547

评论数 0

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

本章节用来介绍stmmac_dvr_probe函数过程。 函数一开始就调用nxp_plat_initialize函数对MAC IP核复位、PHY复位、MAC IP核用到的时钟进行初始化,但是这部分做的事情跟注册MAC设备的时候nxpmac_init做的事情完全一样,所以这个函数做的事情就不再进行详...

2016-03-14 15:00:33

阅读数 670

评论数 0

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

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

2016-03-13 00:43:26

阅读数 1158

评论数 0

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

目的:友善之臂的NanoPC-T2的uboot是没有对网络进行初始化的,而在Linux kernel中进行初始化,现在要分析在Linux中对应的网卡驱动程序,移植到uboot上,以实现从远程使用tftp下载linux kernel镜像文件,而NFS网络文件系统是在linux kernel网卡进行初...

2016-03-13 00:14:30

阅读数 752

评论数 0

原创 tiny4412 uboot分析 (3)

uboot在加载到RAM执行后,跳转到main_loop中,然而main_loop最后调用的一个函数是parse_file_outer。在这个函数中进行解析我们设置的uboot环境变量。 不管linux kernel最终加载成功,也不会再跳转回main_loop,中,如果加载失败,则会parse...

2016-03-10 22:05:25

阅读数 293

评论数 0

原创 tiny4412 uboot分析(2)

在将uboot镜像文件加载到内存后,最终执行after_copy,在after_copy中会调用board_init_f,在board_init_f中,会调用一个非常重要的函数指针数组init_sequence,其中在init_sequence中的display_banner会显示uboot版本号...

2016-03-08 15:02:30

阅读数 377

评论数 0

原创 tiny4412 uboot分析(1)

启动程序是用汇编写的启动代码,位于arch/arm/cpu/armv7/start.S,在reset中,首先执行如下操作: mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0xd3 msr cpsr,r0 作用是使ARM进入管理模式...

2016-03-07 22:00:30

阅读数 574

评论数 0

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

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

2016-03-07 21:57:43

阅读数 992

评论数 0

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