自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

太陽の金貨 的博客

_(:з」∠)_自己的学习总结而已啦~~~

  • 博客(66)
  • 收藏
  • 关注

原创 AOSP与Ninja

AOSP与NinjaAndroid N中,使用了ninja作为整个AOSP的编译工具build/core/config.mk通过包含clang/versions.mk和clang/config.mk确定CLANG_CXX = /prebuilts/clang/host/linux-x86/clang-2690385而main.mk中包含了ninja.mk,该文件确定KATI_CXX和MA...

2020-12-26 11:48:37 699

原创 Andoid NDK编译分析

MSM8909交叉工具链使用:LittleKernel : prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/Kernel : prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/Framework : clang+llvmClang的发展libc++.so是针对Clang编译器特别重...

2020-12-26 11:48:29 456

原创 CMake使用例子

目录结构.├── armgcc.cmake├── build│ ├── build_all_debug.sh│ ├── build_all_release.sh│ ├── clear.sh│ └── readme.txt└── CMakeLists.txtCMakeLists.txtcmake_minimum_required(VERSION 2.8)#AD...

2020-12-26 11:48:20 386

原创 JNI接口

JNI接口1.使用JNIEXPORT、JNICALL和包名限定native方法,这样jvm在加载so的时候,能够找到对应的成员方法JNIEXPORT void JNICALL Java_com_midea_xiexb4_nativetest_JniUtil_getStringFromJNI (JNIEnv * env, jobject obj);如果对包名路径或者参数不熟悉,可以先编...

2020-12-26 11:44:14 502

原创 MSM下编译结构

2020-12-26 11:40:26 192

原创 Android下Java语法点

非静态匿名内部类会保留外部类的引用,可能会导致外部类(如Activity)内存不能正常回收,解决方法:1.使用非匿名类private Handler handler = new Handler(new Handler.Callback() { public boolean handleMessage(Message msg) { if (msg.what == 1) {...

2020-12-26 11:38:32 145

原创 MSM下LCM驱动

MIPI相关知识D-PHY的物理层支持HS(High Speed)和LP(Low Power)两种工作模式HS模式:低压查分信号 功耗大 高速率(80M -1Gbps) 信号幅值(100mv-300mv)LP模式:单端信号 功耗小,速率低(< 10Mbps) 信号幅值(0-1.2V)在高速模式下,通道状态是差分的0或1,定义P比N高时定义为1,P比N低时定义为0,此时线上典型电压为差...

2020-12-26 11:37:22 182

原创 MSM下串口扩展wk2114

wk2xxx_probe setup_timer(&rx_timer, timer_function, 0); timer_function //每2s统计一次接收字节数 uart_register_driver alloc_tty_driver tty_set_operations //初始化操作函数为serial_core.c中的uart_ops,设置波特率9600,...

2020-12-26 11:36:57 695

原创 AndroidStudio使用技巧

1.添加第三方so或者jar库1.1 直接将so或者jar放置在/src/main/jniLibs目录1.2 将so或者jar放在/app/libs目录,并且在app/build.gradle的android根节点下添加sourceSets { main { jniLibs.srcDirs = ['libs'] }}这种方法程序安装完,so会自动添加到a...

2020-12-26 11:36:22 200

原创 Linux的硬件实时性

1.任务的实时性Linux内核(linux-2.6以前) 是不可抢占的,但支持用户抢占它的调度方法是:一个进程可以通过schedule()函数自愿地启动一次调度。非自愿的强制性调度只能发生在每次从系统调用返回的前夕以及每次从中断或异常处理返回到用户空间的前夕(这种强制性调度又叫用户抢占)。但是,如果在系统空间发生中断或异常是不会引起调度的。这种方式使内核实现得以简化。Linux内核(linu...

2020-12-26 11:34:42 237

原创 MSM下Bootloader流程

2020-12-26 11:33:43 151

原创 MSM下pinctrl笔记

参考文档:Documentation/pinctrl.txtDocumentation/devicetree/bindings/pinctrl/pinctrl-bindings.txtDocumentation/devicetree/bindings/pinctrl/msm-pinctrl.txtinclude/linux/pinctrl/pinconfig-generic.hmsm_t...

2020-12-26 11:33:11 286

原创 Python语法

1.基本语法1.1 下横线开头的函数如_init代表不能直接访问的类属性,不可通过from xxx和import *导入,需通过类提供的接口进行访问1.2 双横线开头的函数如__init代表类的私有成员1.3 前后双横线为特殊方法的专用标志,比如 __ init__() 代表类的构造函数1.4 Python的代码块不使用{},使用缩进来写模块,相同代码块必须使用相同的缩进空白数1.5 每...

2020-12-07 19:03:16 162

原创 C++语法点

函数1.带默认形参值的函数,默认形参值必须按从右向左定义,实参从做到右初始化int add(int x, int y=5, int z=6){} add(1); //y和z使用默认形参值默认形参值可以通过函数声明在不同作用域中设置不同的值2.函数模板template <typename T>函数定义eg:template <typename T>T ...

2019-08-18 23:45:17 427

原创 Linux内核常用API

参考书籍:嵌入式Linux驱动开发教程(华清远见 姜先刚 刘洪涛)1.模块驱动1.1 modulemodule_init(xxx)module_exit(xxx)MODULE_LICENSE(“xxx”)MODULE_AUTHOR(“xxx”)MODULE_DESCRIPTION(“xxx”)MODULE_ALIAS(“xxx”)1.2 module parammodule_p...

2019-08-04 22:23:02 1275

原创 JAVA语法点

运算符op1 instanceof op2 :当op1指示的对象或数组属于op2给出的引用类型,运算结果返回true比如“Hello” instanceof String 返回truefinal作为常量修饰符数组在Java中,数组是一个动态创建且属于Arrays的类对象,因此它又属于引用类型,数组一旦创建长度不可修改,变长数组需要使用ArrayListint[] myArray;或者 ...

2019-07-21 22:48:10 212

原创 GitLab安装与使用

使用清华镜像服务器进行下载,可以参考https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/首先信任 GitLab 的 GPG 公钥:curl https://packages.gitlab.com/gpg.key 2&amp;amp;amp;amp;amp;amp;amp;gt; /dev/null | sudo apt-key add - &amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;

2019-02-02 10:27:55 329

原创 VIM配置

VIM环境配置

2019-01-27 23:01:12 653 1

原创 常用技巧

1.define中的#和## #是将后面的内容进行串化; ##是连接两串字符,形成新的字符串; 详见https://zhidao.baidu.com/question/425382312987430932.html 2.二级串化,可以将数字宏定义转化为字符串,详见: http://blog.csdn.net/happen23/article/details/50602667

2019-01-26 15:48:28 131

原创 Android应用反汇编

一般的apk重命名为.zip后打开,可以看到根目录下有class.dex和class.odex(对class.dex进行优化后的可执行代码) 使用一些工具,可以将odex去优化成dex,dex文件可以通过反编译成jar,再通过工具可以将jar转换成java。1.一般的apk可以使用smali2java进行反汇编查看; 2.有一些apk使用了混淆编译,可以使用 安卓逆向助手 进行反编译,编译成sm

2017-03-17 18:02:00 1118

原创 Android源码下device目录的分析

一般源码的编译前都会执行lunch命令,选择编译目标: source build/envsetup.sh lunch BUILD_BUILDTYPE 其中BUILDTYPE可以为user、userdebug、eng,排行越靠后,调试信息越多,权限越大,而其中的BUILD编译目标就是build目录下产品配置信息决定的。vendorsetup.shbuild目录一般结构为: build-> co

2017-03-17 17:04:07 7559

原创 网络协议栈相关

TCP/IP相关常用调试cmd: ping 不解释 routert 查看路由表 arp -a 查看ARP表各数据帧包头长度 以太网包头(MAC地址): 14Bytes IP包头: 20Bytes+0 TCP包头: 20Bytes+0三次握手 发起端发送SYN包与自己的ISN(初始序号)

2017-02-23 22:40:31 592

原创 程序的路径

编译路径 通过-I制定头文件绝对路径,-L制定动态库路径 -l指定使用的库名,可以在系统默认库路径(/lib、/usr/lib、/usr/local/lib)或者-L指定路径中查找 运行时路径 编译时使用-Wl,-rpath可以为目标程序指定运行时的额外库路径 vim /etc/ld.so.conf 可以编辑动态库运行时查找路径,修改后,sudo ldconfig刷新系统查找路径 当上述

2017-02-23 22:29:49 614 1

原创 Linux下的内存分配方式简述

1.内存的最小单位为页(4KB),在此基础上使用“伙伴系统算法”协助管理不同连续长度的内存段,将1,2,4,8,16,32,64,128,256,512和1024个连续页框的页框块分类管理。 2.在伙伴系统上还有slab协助内存管理,其原理大致为,先统一获取大内存段并且切割分配,当用户需要特定大小内存的时候,从其中取出初始化好的内存返回。 3.各种api函数: 3.1 alloc_pages,

2017-02-16 18:09:20 1066

原创 Android常用修改

1.设置系统默认语言 1)进入build/target/product目录,修改文件core_base.mk的PRODUCT_PROPERTY_OVERRIDES 值,例如,欲修改为默认中文,则增加语句如PRODUCT_PROPERTY_OVERRIDES := \ro.config.notification_sound=OnTheHunt.ogg \ro.config.alarm_al

2016-12-19 11:17:45 3258 1

原创 Android 调试

打开调试信息 #define LOG_TAG “AndroidRuntime” #undef NDEBUG //打开LOGV/LOGI/LOGD #define LOG_NDEBUG 0 //打开LOGV,为1时表示禁止 #define LOG_NIDEBUG 0 //打开LOGI,为1时表示禁止 #define LOG_NDDEBUG 0 //打开LOG

2016-12-19 11:17:26 636

原创 RK驱动小结

1.摄像头 ①rk3128_cif_sensor.dtsi中有“rockchip,sensor”的设备描述符,主要描述IIC地址、通道、cif时钟频率等等信息; rk312x.dtsi中有”rockchip,cif”的设备描述符,主要描述rk312x的时钟名、中断号等; ②rk_camera.c中主要就是“rockchip,sensor”和”rockchip,cif”的驱动,其中rk_dts

2016-12-19 11:12:44 5180

原创 Qt5环境搭建

Windows下的Qt Creator安装1.首先登陆Qt官网下载页面,https://www.qt.io/download/,不用理会页面前面的“Get Started with Qt”问卷调查,直接拖动滚动条到页面中部,可以看到有两个分支: 左面的是应用软件开发的环境,Embeded Qt的应用程序开发也属于这个分支;右边的是专门为设备定制开发的环境,这个是只有商业付费版的,显然我们

2016-12-19 11:12:12 437

原创 Linux启动脚本执行顺序

1.一般内核启动后。①先识别存储器分区,根据root=/dev/block/mtd/mmcblk0p6这样的的参数挂载文件系统 ②运行文件系统中的init=/sbin/init执行启动脚本 ③一般这个时候脚本中可能会有分区识别脚本,将分区再识别一次,或者重新挂载nfs(当然,直接在root=nfs,让内核去挂载网络文件系统也是可以的)2.一般Linux的RunLevelLinux系统有7

2016-12-08 23:23:10 2913

原创 Android镜像与启动流程

对于RK平台上电提供了2K自动搬运到SRAM的机制,方便初始化DDR,并且进行后续代码引导,同时厂商还提供了一级boot(MiniLoader),方便从nand启动:MiniLoader.bin(单独更新Loader的时候,需要连parameter.txt一起更新)rk312x.parameter.txt(记录了单板ATAG、CMDLINE、分区信息等,Uboot从中获得信息传递给Kernel)ub

2016-12-08 23:21:42 2041

原创 Shell脚本常见问题

1.定义变量时, =号的两边不可以留空格. eg: gender=femal————right gender =femal———–wrong gender= femal———–wrong2.条件测试语句 [ 符号的两边都要留空格. eg: if [ $gender = femal ]; then——-right. echo “you are femal”; fiif[ gender…

2016-12-05 21:10:37 650 1

原创 设备树相关知识

先参考: http://blog.csdn.net/21cnbao/article/details/8457546后续自行补充:

2016-10-19 18:03:06 409

转载 VMware根分区扩容

请参考: http://www.linuxidc.com/Linux/2015-03/115027.htm

2016-10-19 18:01:22 360

原创 SQLite中的SQL

常规语法字符串常亮建议使用单引号,虽然支持双引号; 二进制数据使用(x‘0fff’)这样的十六进制形式; 注释建议使用(– This is comment),虽然支持C段注释(/* This is comment */);DDL表的创建 create [temp] table table_name (column_definitions [,constraints]);其中

2016-09-25 22:24:17 355 1

原创 SQLite编译安装

编译安装

2016-09-25 22:23:50 665 1

原创 SD卡移植

首先在mach-mini6410.c中添加sdio控制器:static struct platform_device *mini6410_devices[] __initdata = { &s3c_device_hsmmc0, &s3c_device_hsmmc1,};同时,由于我们的开发板硬件上面的hsmmc0接口连接的是SD卡,而SDIO WIFI连接在hsmmc1上面,但是根

2016-09-07 15:12:21 651

原创 dhcp的安装与使用

dhcp的编译安装解压源码:tar zxvf dhcp-4.2.5-P1.tar.gzcd dhcp-4.2.5-P1/配置:./configure --host=arm-linux ac_cv_file__dev_random=yes修改Makefile:cd bindvim Makefile +55添加配置 :./configure BUILD_CC=gcc ac_cv_file__dev_

2016-09-07 10:43:23 2084 1

原创 Hostapd的安装与使用

hostapd编译安装:解压源码包:tar zxvf hostapd-2.0.tar.gzcd hostapd-2.0/hostapd/cp defconfig .config修改配置文件:vim .config加一行: CONFIG_LIBNL32=y修改Makefile vim Makefile将ifdef CC=gccendif改成CC=arm-linux-gccmakemak

2016-09-07 10:35:57 7599 1

原创 Mdev 热插拔

inittab: 调用rcS { rcS: mount -a 挂载fstab中的文件系统(dev、sys等) { fstab: 挂载 /dev /proc /sys

2016-09-06 21:34:02 777

原创 wpa-supplicant安装与使用

libopenssl安装tar xzvf openssl-1.0.1d.tar.gzcd openssl-1.0.1d/./config shared no-asm --prefix=$PWD/tmp修改Makefile:CC= arm-linux-gccAR= arm-linux-ar $(ARFLAGS) rRANLIB= arm-linux-ranlibNM= arm-linux

2016-09-06 14:42:03 3626

空空如也

空空如也

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

TA关注的人

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