- 博客(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
316
1
原创 【Android 8.1】ubuntu 22.04编译Firefly RK3399 Android 8.1
ubuntu 22.04编译andorid 8.1
2022-06-19 18:44:47
1756
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
865
原创 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
1932
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
7984
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
5322
原创 find 命令与exec配合使用
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。看例子:find ./ -name "*.txt" -exec ls -l "{}" \;查找当前目录的.txt文件并以列表形式列出来 find ./ -name "*.txt" -exec mv "{}" "{}d" \;批量修改当前
2017-07-15 23:32:27
482
原创 移植全新的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
519
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
696
原创 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
11378
1
原创 32位arm-linux-gcc无法在64位系统上运行
很多开发板厂家提供的是32bits的编译器,而现在很多人使用的是64位linux,当解压编译器压缩包,并且加入到环境变量后,提示没有这样的文件等问题在Ubuntu 64上需要安装lib32ncurses5,使用如下命令:sudo apt-get install lib32ncurses5
2016-04-12 11:44:18
1609
原创 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
5686
原创 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
1913
原创 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
1550
原创 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
714
原创 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
1196
原创 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
1773
原创 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
1089
原创 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
442
原创 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
545
原创 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
843
原创 Linux内核层虚拟地址和物理地址转换函数
在Linux kernel中经常会用到物理地址跟虚拟地址的转换,先归纳如下:__va():从物理地址转换为虚拟地址;__pa():从虚拟地址转换为物理地址;
2016-03-07 21:57:43
4272
原创 查找当前目录下文件中包含关键字符串的文件以及行号
在查看uboot代码的时候,用到了如下的命令grep "CONFIG_SYS_TEXT_BASE" * "-nR"它的作用是在在当前目录以及下级目录的文件中查找CONFIG_SYS_TEXT_BASE字符串的文件,并显示行号
2016-03-05 00:16:04
943
转载 tar.xz文件的解压
XZ压缩最新压缩率之王xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。 之前xz使用一直很少,所以几乎没有什么提起。 我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。 最新一段时间会经常听到xz被采用的声音,像是最新的archlinu
2016-02-29 21:01:39
545
转载 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
628
转载 linux下查找包含关键字的文件
在linux下如果要查找包含某个关键字的文件,如要在/root/目录下搜索带有关键字“www”的文件,在终端下运行命令:find /root/ –type f |xargs grep “www”grep -r "test" /root/
2016-02-28 13:32:39
522
原创 查看Linux input子系统信息
如果要查看/dev/input目录下event对应的设备信息,则使用 cat /proc/bus/input/devices 查看,H: 对应的event即为事件编号如果要查看/dev/input/event*对应的信息,则可使用 hexdump /dev/input* 查看
2016-02-17 16:22:19
815
windows系统底层如何建立起移动热点
2023-09-26
安卓SDK中API注释@since 9代表啥
2023-02-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人