自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 在 box 版 android7.1 源码中添加 EC20 4G 模块

移植 linux 驱动此处按照供应商提供的文档来,不再详细叙述,驱动移植完成后会生成 /dev/ttyUSB0-ttyUSB4 文件android hardware 层服务开启在hardware中,需要开启ril-daemon 服务,查找发现在init.rc中存在此服务,先将其删除.使用 hardware/ril/rild 目录下的rild.rc文件来配置ril-daemon服务servi...

2019-07-25 16:37:13 940

原创 十进制字符串转化成十六进制字符串(不定长)

这里写自定义目录标题设计思路一般思路对于不定长字符长怎么处理?将数据添加到buffer中完整代码设计思路一般思路一般如果需要将十进制转化成十六进制,先定义一个int data,然后从高位到地位遍历十进制字符串,将数据一位位的添加到data中,最后将data转成十六进制字符串输出就可以了,那么先来看看怎么转化成dataint string2int(const char *src_buf){...

2019-07-25 15:58:23 269

原创 批量创建Android源码的本地仓库

批量创建Android源码仓库修改manifest.xml文件准备仓库app.py源代码修改manifest.xml文件manifest.xml文件在源代码的.repo目录中<manifest> <remote fetch="ssh://localhost/mnt/GitRepository/ANDROID7.1" name="ssh" review="remote...

2019-07-04 09:36:38 379

转载 android:duplicateParentState 属性

android:duplicateParentState指的是当前控件是否跟随父控件的(点击、焦点等)状态,一般用于像TextView这样没有设置focusable的控件

2019-04-03 10:50:42 458

原创 将第三方App固化到系统中

将第三方App固化到系统中Android.mk 文件写法LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := MyAppLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := MyApp.apkLOCAL_MODULE_CLASS := APPSLOCAL_MODU...

2019-04-01 18:12:53 678

转载 Linux 用户态设置GPIO控制

Linux 用户态设置GPIO控制linux内核提供了一套在用户态配置GPIO的接口,在/sys/class/gpio/目录下 可以发现其中包含有两个文件export、unexport和若干gpiochipN 类型文件夹export 用于将指定编号的引脚导出,作为GPIO使用unexport 用于将导出的GPIO删除掉gpiochipN 当前芯片中包含的GPIO控制器

2018-01-25 19:58:30 2299

原创 Python中的metaclass

Python中的metaclass 我们知道,当一个类定义了,那么类其中的成员变量和函数也就确定了。而metaclass就是一种在运行时动态设置成员变量和函数的一种方法type()函数 type(name, bases, dict) 类名称(name)、父类列表(bases)和 属性字典(dict) “python中一个类的定义可以通过 class 类名(父类)来定义,同样可以通

2017-11-15 20:06:58 195

原创 void HAL_Delay(__IO uint32_t Delay) 函数溢出的问题

计数器的更新计数器uwTick是在每次Systick中断中加一更新,此处配置Systick中断为每1ms中断一次。uwTick为uint32_t类型,那么uwTick的最长计时为0xFFFFFFFF毫秒(约为49.7天),也就是说 uwTick 会在系统持续运行49天后溢出清零。函数的实现void HAL_Delay(__IO uint32_t Delay){ uint32_t ticksta

2017-08-23 17:51:29 3630 1

原创 Stm32 在线升级要点

Stm32 在线升级要点具体代码不再多做介绍,此处仅介绍怎样一些需要注意的地方RCC 时钟只能配置一次,RCC 时钟最好在 IAP 中进行配置,使单片机工作在一个稳定的状态在 IAP代码跳转前禁用已经开启过得中断,然后在App代码中重现开启中断。如果系统相关模块并未启动,而中断就已经开启,会直接导致系统出错。(例如systick中断)如果在App代码中并未涉及到相关时钟总线的初始化,那么需要注

2017-08-21 18:02:11 455 1

转载 Cortex-M3 内核HardFault错误调试定位方法

首先更改startup.s的启动文件把里面的HardFault_Handler代码段换成下面的代码: HardFault_Handler\ PROC IMPORT hard_fault_handler_c ;函数申明 TST LR, #4 ;根据LR.2判断使用的什么堆栈 ITE EQ MRSEQ R0, MSP ;使用MS

2017-07-25 11:52:00 2398

原创 LCD 多层菜单

基本结构体定义菜单项定义struct menu{ uint8_t range_from; //当前显示的项开始序号 uint8_t item_count;//项目总数 uint8_t selected;//当前选择项 struct menu_tag *menu_tag; struct menu *sub_menus[MAX_SUB_MENU];//子菜单

2017-07-12 18:55:21 1896

转载 fatfs文件系统

hal库中的FATFS使用STM32CubeMX添加FATFS下的user-defined,打开工程,查看main()可以发现代码中先调用了MX_FATFS_Init()函数,而此函数又调用了 FATFS_LinkDriver()函数,继续查找FATFS_LinkDriver()函数,发现此函数第一个变量为Diskio_drvTypeDef类型typedef struct{ DSTATUS (

2017-06-05 18:42:31 3346

转载 usb传输

首先,要明白两个观点。第一,USB总线上所有的事务(数据流传输)都是由USB Host主动发起,而USB设备永远永远都是只是被动地接收然后处理USB Host发来的各种各样的命令(要求)。第二,中断是USB Host和USB设备之间的信令员,USB Host所有的要求都是通过这个信令员即中断来通知USB设备。我们可以将整个USB数据通信过程看成是由一个一个的数据包构成,而这些数据包又分很多类,比如:

2017-06-02 16:06:50 352

原创 开漏输出和推挽输出

开漏输出: 就是输出电压在低电平时接地,高电平时高阻态。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候,也可以多个开漏输出相连形成与门电路(IIC)。 推挽输出: 使用两只三极管构成一级放大器电路,分别对输出高电平和输出低电平进行放大,增强驱动能力。

2017-05-20 11:05:37 571

原创 使用STM32CubeMX创建STM32F407工程

使用STM32CubeMX创建STM32F407工程创建项目新建工程,选择对应的stm32f407芯片 设置相关引脚pinMiddleWares:因为需要使用网络,选中LWIP。Peripherals:配置ETH使能,在右侧的引脚配图中相关引脚 配置RCC,使用外部晶振如图所示 配置SYS,配置系统时钟中断,使用ARM内部时钟 配置USART1,模式为异步,不使用硬件流控

2017-05-08 18:55:07 10120

转载 Android中的Context详解

注:本文翻译自Context, What Context?,原文链接在这里,作者是Dave Smith。ps:这个网站的是设计风格非常清新。Context可能是Android应用中最常用的元素,而它也可能是最容易误用的。Context对象是如此常见和传递使用,它可能会很容易产生并不是你预期的情形。加载资源、启动一个新的Activity、获取系统服务、获取内部文件路径以及创建view

2017-03-25 15:28:00 294

原创 WPF 中鼠标事件无效

WPF 中鼠标事件无效在UserControl中,如果未设置Background,那么Background将为null,将无法触发鼠标事件

2017-03-02 16:50:23 2895 1

转载 ViewDragHelper详解

2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用,其实研究他们的源码你会发现这两个类都运用了ViewDragHelper来处理拖动。ViewDragHelper是framework中不为人知却非常有用的一个工具。ViewDragHelper解决了android中手势处理过于复杂的问题,在Drawe

2015-10-16 16:17:31 381

转载 Activity的启动模式以及onNewIntent(Intent intent)

启动模式允许开发者定义一个activity的新实例如何与当前的Task关联。可以定义使用俩种方法来定义。如果Activity A开启Activity B, Activity B就可以在它的manifest文件中定义它与当前的task如何关联,Activity A也可以要求activity B应该如何与当前的task关联。如果两个activity都定义了Activity B应该如何与一个task关联,

2015-08-31 11:04:12 454

原创 Package * is missing dependencies for the following libraries: libpthread.so.0

出现这种错误的原因是,程序中使用了动态库,而程序又找不到这个动态库首先,在你的makefile中添加对库的依赖,在DEPENDS后增加+libpthreadDEPENDS:=+libpthread当然,还需要将动态库拷贝到你的系统中define Package/$(PKG_NAME)/install ........... $(CP) ~/Share/trunk/build_dir/

2015-08-12 16:58:11 1457

转载 使用class_create(),device_create()为设备自动创建文件结点

转载:http://www.cnblogs.com/hnrainll/archive/2011/06/24/2088576.html我们在刚开始写Linux设备驱动程序的时候, 很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设 备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。 首

2015-05-13 11:54:58 502

原创 openwrt 将自己的应用编入rom中

在wrtnode\package中建一个文件夹mylabel,以此作为菜单 在里面添加一个你的程序myapp文件夹,添加makefile文件如下:include $(TOPDIR)/rules.mkPKG_NAME:=myappPKG_RELEASE:=1PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)include $(INCLUDE_DIR)/packa

2015-04-28 12:09:24 503

原创 wrtnode (mt7620n) 开启第二个spi

本文参考大神作品,附上链接:http://blog.csdn.net/manfeel/article/details/43635529 首先需要修改设备树,打开文件wrtnode\target\linux\ramips\dts\mt7620n.dtsi 在文件wrtnode\build_dir\target-mipsel_24kec+dsp_uClibc-0.9.33.2\linux-ram

2015-04-28 11:03:14 1530

原创 wrtnode(mt7620n) spi 使用gpio模拟

上篇讲到,关于spi第二个端口复用,由于复用了三个端口,导致连上fpga后,系统根本就起不来。看来,设备禁用后,复用引脚不是完全的高阻态,没有办法,只用gpio口模拟 使用的四个引脚: 太好了,正好四个 打开wrtnode\target\linux\ramips\dts\WRTNODE.dts,在根节点下添加gpio-spi { compatible = "spi-gpio

2015-04-28 10:43:21 2614

原创 Stm32作为主设备使用DMA接收SPI数据

DMA发送中断和DMA接收中断必须都打开,如果接受中断不开,貌似只能接收一次成功。同时DMA接收比发送优先级要高,这条没有测试过!!!以下代码在stm32f407上测试通过#include "spi_dma.h"#include "stm32f4xx_dma.h"#include "stm32f4xx.h"#include "spi.h"#include "SRAM.h

2015-03-18 11:30:20 11794 1

原创 Preference中setOnPreferenceClickListener和setOnPreferenceChangeListener的区别

setOnPreferenceClickListener注册的回调函数,在你点击PreferenceCategory之后就会执行,当然,此时PreferenceCategory里面包含的EditTextPreference还没有初始化,此时调用EditTextPreference相关函数会出错。setOnPreferenceChangeListener注册的回调函数,在你PreferenceC

2015-01-07 13:51:23 3310

原创 stm32 关于ENC28J60TCP和UDP的实现

程序运行流程:

2014-11-21 20:47:26 3134

原创 I/O多路复用之select,poll和epoll

select头文件

2014-11-06 09:48:14 395

转载 linux 中的原子操作和内存屏蔽

很多人会问这样的问题,Linux内核中提供了各式各样的同步锁机制到底有何作用?追根到底其实是由于操作系统中存在多进程对共享资源的并发访问,从而引起了进程间的竞态。这其中包括了我们所熟知的SMP系统,多核间的相互竞争资源,单CPU之间的相互竞争,中断和进程间的相互抢占等诸多问题。通常情况下,如图1所示,对于一段程序,我们的理想是总是美好的,希望它能够这样执行:进程1先对临界区完成操作,然后进程2

2014-11-03 12:01:44 1235

原创 一个字符驱动

首先,实现一个基本框架

2014-11-01 12:05:47 392

原创 linux 信号量

信号量概念自旋锁顾名思义首先是一把锁,另外使用这把锁的线程需要反复自我循环(loop)检测这把锁是否可用。注意与信号量区别,信号量也是一把锁,但是使用这把锁的线程检测锁不可用时,选择去睡眠,而不是自我循环。自旋锁与信号量相同点是两者都是锁,都具备锁定特性,实现临界区代码块的同步与互斥访问。自旋锁函数1)自旋锁头文件2)自旋锁数据类型spinl

2014-10-31 20:23:55 392

转载 Linux自旋锁

编写最基本的驱动文件

2014-10-31 16:12:24 438

原创 usb 驱动中的相关结构体关系图

2014-10-29 17:11:10 961

转载 urb的使用

Linux系统所有的 USB 设备通讯使用称为 urb 的东西( USB request block). 这个请求块用 struct urb 结构描述并且可在 include/linux/usb.h 中找到

2014-10-29 10:41:02 951

原创 使用shell 实现tree函数

学了这么久shell,放出一个实例

2014-10-21 17:31:33 1099

原创 shell 中的引号

首先明白,在shell语句中使用引号,是为了

2014-10-20 15:29:12 412

转载 Intent 和 Intent Filter

Android 应用程序中有三大核心组件: Activity, Service, Broadcast Receiver 都是通过被称之为意图的消息运行。Intent messaging is a facility for late run-time binding between components in the same or different applications. 意图本身一个 In

2014-09-27 17:31:08 354

转载 AndroidManifest.xml文件详解

AndroidManifest.xml是每个android程序中必须的文件。它位于application的根目录,描述了package中的全局数据,包括了package中暴露的组件(activities, services, 等等),它们各自的实现类,各种能被处理的数据和启动位置。

2014-09-27 09:56:10 333

原创 linux 管道通信

pipe:1) 头文件 #include2) 定义函数: int pipe(int filedes[2]);3) 函数说明: pipe()会建立管道,并将文件描述词由参数filedes数组返回。filedes[0]为管道里的读取端              filedes[1]则为管道的写入端。4) 返回值:  若成功则返回零,否则返回-1,错误原因存于errn

2014-09-20 14:54:30 460

原创 socket UDP的使用

首先明白,对于UDP而言,没有所谓的f

2014-09-19 18:38:42 562

空空如也

空空如也

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

TA关注的人

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