自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 安卓framework添加新API, APP使用该API崩溃

我完整地编译AOSP,然后刷机,写了一个APP调用我新增的method,但app总是会奔溃,提示java.lang.NoSuchMethodError: No virtual method forceLatencyMode(Z)V in class Landroid/net/wifi/WifiManager;我需要在WifiManger这个类里添加一个method,代码位于packages/modules/Wifi/framework/WifiManager.java。

2023-04-20 18:14:57 220 1

原创 【Android 8.1】ubuntu 22.04编译Firefly RK3399 Android 8.1

ubuntu 22.04编译andorid 8.1

2022-06-19 18:44:47 1553 1

原创 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 755 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 1822 1

原创 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 7899 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 5242

原创 find 命令与exec配合使用

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

2017-07-15 23:32:27 433

原创 移植全新的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 479 1

原创 移植全新的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 656

原创 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 10864 1

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

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

2016-04-12 11:44:18 1538

原创 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 5360

原创 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 1859

原创 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 1496

原创 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 680

原创 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 1108

原创 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 1675

原创 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 1038

原创 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 397

原创 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 503

原创 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 793

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

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

2016-03-07 21:57:43 3809

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

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

2016-03-05 00:16:04 876

转载 tar.xz文件的解压

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

2016-02-29 21:01:39 526

转载 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 593

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

lsof -p PID

2016-02-28 13:33:08 2076

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

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

2016-02-28 13:32:39 491

原创 查看Linux input子系统信息

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

2016-02-17 16:22:19 727

windows USB驱动和应用程序工程

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

2015-05-15

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

TA关注的人

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