- 博客(28)
- 资源 (5)
- 收藏
- 关注
原创 LED控制 从kernel到app的过程分析和小结(基于android 6.0)
1. Driver part (图方便,随便在一个文件中申请了一个杂项设备,有时候想,为什么不是字符设备,查阅相关信息,得知杂项设备驱动是一种特殊的字符设备驱动,节省了主设备号,使用简单。)#include <linux/miscdevice.h>#include <linux/uaccess.h>#define MISC_NAME "led"#define MISC_IOC_MAGIC 'L'#define RK_FBIOSET_SET_LOGO _IOW(M
2021-11-21 17:57:26
1937
原创 学会使用main函数对驱动进行测试
以rk3288 spi设备为例对其驱动进行测试对kernel\drivers\spi\spidev.c文件进行测试需要用到kernel\Documentation\spi\spidev_test.cconfig文件配置CONFIG_SPI_ROCKCHIP=yCONFIG_SPI_SPIDEV=y添加Android.mk文件LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES+=spidev_test.cLOCA
2021-11-21 17:48:58
585
原创 record partial shell practise
#!/bin/shcp $1 backup.inifunction pre_process(){ echo "1. pre_process"; #Remove line with '#' beginning sed -i '/^\#/d' backup.ini #Remove space line grep -v "^$" backup.ini > tmp.ini mv tmp.ini backup.ini #Remov.
2021-10-14 02:31:11
128
原创 AF 学习补充
学了一篇博客 Android Audio,顺便补充一下相关知识。AF 根据不同 flag 来创建播放线程,有 mixer /direct output /offload /mmap mode mixer(primary output) direct offload mmap(AAudio useage) format pcm pcm & raw raw pcm avsync owner player di...
2021-02-21 14:03:20
114
原创 Linux Kernel - The Block I/O Layer
固定大小的数据块称为块,常见块设备磁盘有硬盘,闪存等,随机访问,字符设备以序列数据流的方式访问,如键盘输入是一字节接一字节访问。由于块设备的复杂度,访问性能等原因,内核提供了一个子系统进行管理,即 Block I/O Layer。块设备最小可寻址单元称为扇区,扇区大小是一个设备的物理属性,大部分块设备为 512 B,CD-ROM 磁盘为 2KB。...
2020-03-11 16:01:05
443
原创 Linux Kernel - The Virtual Filesystem
虚拟文件系统是内核的子系统,实现了供用户空间编程用的文件系统相关的接口,其抽象特性使得不同的文件系统看起来用起来都一样,如将 ext2, ext3 格式的文件系统 mount 到不同的目录,ls 指令可以查看两个不同的文件系统内容。 ...
2020-03-08 10:59:53
156
原创 Linux Kernel - Synchronization
case 1 - SingleVariablei++; 汇编会进行如下操作1. 获取变量 i 的值,并写入寄存器2. 寄存器的值加 13. 寄存器的值写回变量 i 所在的内存空间若两个线程同时进行对变量 i 进行 i++ 操作,则可能出现下面两种结果,因此,在共享内存的应用中,需要保证并发访问时共享资源是受保护的。...
2020-02-28 20:22:25
253
原创 Linux Kernel - System calls
1. 提供抽象硬件接口 eg. 磁盘读写 read/write2. 保证系统安全和稳定性 对 kernel 的访问需要权限,用户空间不可直接访问系统资源3. 基于进程的虚拟系统考虑 多任务,虚拟内存的实现稳定性和安全性通常,应用编程调用在用户空间实现的 API,而不直接使用系统调用。...
2020-02-26 19:23:59
175
原创 linux 调试笔记 - insmod error
最近在 driver 里面实现一个新的功能时,发现平台 APP 部分出现一些异常状况,界面显示异常,wifi 相关的应用不停的打印 error 信息,讲道理我实现的新功能只是在系统启动的时候启用,怎么会影响到 user space 部分。相关 log 信息如下:vmap allocation for size xxx failed: use vmalloc=<size&g...
2019-07-28 18:25:57
2231
1
原创 继承和多态
继承单继承class A: [继承方式] B { };多继承class A: [继承方式] B, [继承方式] C { };[继承方式] 即 public,private,protected.多继承的二义性如图所示类C同时继承B1,B2,在调用基类A的成员变量a时,编译器报错,不知道是从类B1还是从类B2继承来访问a。解决方案是添加virtual,实质上编译器给变量成员添...
2019-04-07 18:11:53
120
原创 C++ 运算符重载
什么是运算符重载对于基本类型 int a, b, c; 执行运算 c = a + b; ,编译器很容易理解,但是对于对象 ClassA a0, a1, a2; 执行运算 a0 = a1 + a2;,编译器就懵了。对于下面一段代码,在函数 test_operateplus() 中,执行op = op + op1; 时,程序调用 OperatePlus operator+(const Operate...
2019-03-31 11:31:18
245
原创 C++ 类和对象
C++ 类和对象内联函数和重载函数内联函数是C++为降低小程序调用开销的一种机制。仅在函数原型作一次声明,适用只有1~5行的小函数,不能含有复杂结构控制,不能递归调用。inline int f( ) ;void main( ){ a = f(); ... }int f( ){ ...}函数重载是以同一个名字命名多个函数实现。int max(int ...
2019-03-22 20:23:03
197
原创 cs231n 学习 -- Lecture 8 Deep Learning Software
在等 offer 的路上继续我未尽的cs231n,虽然最后工作内容还是和CV擦肩而过。 这节主要就是 1.CPU vs GPU 2. 深度学习框架的介绍。 1. CPU vs GPU 如下图所示,CPU的核心数相对较小,但是主频较高,每个核的处理能力相对更强,擅长于串行任务;而GPU相比较之 下,核心数会多得多,每个核的相对能力...
2019-03-12 14:00:46
162
原创 这几天的面试
离职了很久,过完年回到深圳这个暖和的城市,和朋友聚了一次,然后开始喉咙发炎,咳嗽,打针吃药,太难了。。。身体好点的时候开始挂简历,投了4家公司,接到一个电话,开始面试之旅。 第一次是去康佳面试Android系统工程师,技术面聊了下以前的项目和他们现在做的东西,然后hr面聊了下,不出意外的问道,两年多换了两家公司,什么原因,唉,第一家公司觉得学不到东西,第二家创业公司实在...
2019-03-10 22:41:08
188
原创 adb 问题
具体情况 Q1: windows 下 adb devices找不到设备,但是在设备管理器中又可以发现Android Device字样解决办法:1.在设备管理器中,找到ADB driver然后点开 2.切换到详细信息栏,属性下拉框中选择硬件Id,记录VID的值,例如USB\VID_2208&PID_0011&REV_0210&MI_...
2019-02-07 13:41:39
393
1
原创 android 6.0 添加netcfg命令
任务: 需要使用netcfg命令进行wifi测试,而android 6.0 似乎把该指令去掉了,所以移植android 4.4代码,在rk3288 android 6.0上编译通过。实施: 1. 在 system/core/netcfg/ 目录下添加文件 netcfg.c,Android.mk,NOTICE,MODULE_LICENSE_APACHE2 2. 添加头文件 k...
2019-02-07 13:30:45
3234
1
原创 cs231n 学习 -- Lecture 6/7 Training Neural Networks
激活函数 Activation Functions 如下图所示,分别为神经元及其数学建模图,当叠加到细胞体的信号高于某个阈值时,神经元可以发射,沿轴突发送尖峰,在数学模型中,假定只有发射速率传达信息,基于此,我们使用激活函数模拟神经元的激发速率。在数学统计中,我们用来赋予模型非线性特性。 比较常见的激活如下,从早期比较受欢迎的sigmoid函数到tanh,...
2019-01-29 20:14:10
257
原创 cs231n 学习 -- Lecture 5 Convolutional Neural Networks
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,和普通神经网络相似,都是由具有可学习权重和偏差的神经元组成。那有什么区别,ConvNet架构明确假设输入是图像,这允许我们将某些属性编码到架构中。然后,这些使得前向功能更有效地实现并且大大减少了网络中的参数量。 常规神经网络采用完全连接结构,对于 32*32*3 的图...
2019-01-13 22:02:52
451
原创 cs231n 学习 -- Lecture 4 Backpropagation and Neural Networks
接上一节求解解析梯度引出反向传播相关知识,高等数学上就是复合函数求导。eg. => 函数可以表示为加法器和乘法器的组合电路,电路图表示如下:函数对 的偏导数可根据所谓的Chain rule: 求得。总结下求解过程,首先是拆分成各个组件,得到组件输出值...
2019-01-08 15:54:13
193
原创 cs231n 学习 -- Lecture 3 Loss Functions and Optimization
上节课末解释了权值 W 的意义,这节主要讲 函数 的评价方法及优化,是吴恩达的机器学习课程中相关知识的深化和补充吧。这里介绍了两种常见的评价方法:Multiclass Support Vector Machine loss and Softmax classifier.Multiclass Support Vector Machine loss这里直接给出表达式: ...
2019-01-04 21:43:29
185
原创 cs231n 学习 -- Lecture 2 Image Classification
Image Classification -- 对于一张图片,如何从一个固定标签集中选一个对它进行标记 ?从机器的角度看会存在哪些问题和挑战 从一个简单的算法来进行切入,来看刻如何赋予标签。Nearest Neighbor Classifier将测试图片和每一个训练图片比较,根据最接近的图片来预测。使用L1 Distance来表示: ...
2019-01-01 10:35:07
142
原创 cs231n 学习 -- Lecture 1 Course Introduction
这一节课主要是课程介绍,包括机器视觉概览和相关历史,简而言之,背景介绍。这里给出2017年该课程的大纲(科学上网哦),包括视频,ppt 等各种资源,2018年的似乎只有本校生才能看。。,下面简单做下笔记。机器视觉是啥,配备有感测视觉仪器(如自动对焦相机或感测器)的检测机器,应用相当广呢。 机器视觉包含哪些科学Psychology 心理学 Computer ...
2018-12-25 15:16:42
246
原创 cs231n 学习 -- 前言
吐槽:我为啥学这个 做了一段时间Android,从uboot,kernel到hal,jni,frameworks,app,发现就那么回事,可能大部分企业的需求也只是增删改,实在无聊,工资也就那么点,继续在这上面整,是否在浪费时间呢,果断离职,准备换方向了。什么赚钱搞什么,市场选择,跟随时代潮流,弄AI呗。 学这门课之前,到官网(要科学上网哦)查了下相关信息,有部分需求Pre...
2018-12-25 12:10:26
158
原创 Eclipse neon for java ee开发android点击layout下文件闪退问题
Eclipse neon开发android,项目用的4.0.3版本系统,原来在JDK1.6环境开发,而Eclipse neon要求JDK1.8,虽然做了JDK1.6兼容,点击layout文件夹下的xml文件,依旧出现Eclipse闪退的问题,log显示和MSCVR.dll冲突了,装了个JDK1.6进行切换,Eclipse打开报错,果然不行呢,无可奈何,下了个Eclipse kepler重新来过
2017-09-07 13:47:45
337
原创 静下来做些事
开学快两个月了,最近才逐渐进入状态,整理下心情,开始前行。不久之前还一直在苦恼,抱怨,身上各种负能量。在大学做了两年电子设计大赛,对硬件和单片机编程会比较熟悉吧,然后考了一个不错的大学读研,但是导师却是微电子方向的,做材料和器件,发些论文,导师给选些课吧,还全都听不懂,上半年还不能去实验室。这下可把我给苦恼的。本来读这工程硕士就两年时间,算下来能进实验室学习的时间就很短了。慢慢就觉得这研究生算
2014-10-23 16:06:21
229
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人