- 博客(25)
- 资源 (19)
- 收藏
- 关注
原创 C语言结构体深度剖析
做了挺久的开发,对于C这种东西,我不敢说自己已经精通了,毕竟还是有许多细节在学习的过程中会遗忘,然后再通过实践慢慢去一点点捡回来。所以只能算是熟练级别。 Linux内核的实现博大精深,从offsetof的实现到后面的container_of,为什么通过结构体的的成员就能获得整个结构体的指针呢?这就得益于offsetof宏的实现。关于这个宏,前面的博文也有讲解,但不够深入,今天的这个例子,足
2017-08-28 10:38:22 1560 1
原创 C语言Window控制台实现弹弹方块(单个方块,多个方块)
前面,我们用C语言实现了列表时的学生信息管理系统,那么,window控制台还能做什么好玩的东西呢?http://blog.csdn.net/morixinguan/article/details/77511003这节我们来实现一下Window下的弹弹方块。设计这个小游戏要考虑的问题(1)方块:方块的大小,方块的颜色,方块在Window控制终端的起始位置(x,y的坐标),方块移动的速度,移动的方向。
2017-08-24 21:03:22 4055
原创 MTK平台M非kk版本的OTA差分包的制作方法
制作OTA差分包可以参考以下博文:http://blog.csdn.net/wei_zhi/article/details/50489623同时也可以参考MTK的OTA更新相关的pdf文档。示例如下:ep: ./build/tools/releasetools/ota_from_target_files --block -s ./device/mediatek/build/releasetools
2017-08-24 17:25:24 1224
原创 C语言实现一个列表式的学生信息管理系统(完善)
http://blog.csdn.net/morixinguan/article/details/77489633 上节,我们实现了学生信息管理系统的大多数功能,但还有两个功能没有实现,就是学生信息修改还有学生信息删除了。当然,程序中依然存在诸多的BUG,比如,scanf和getchar函数就是一对冤家,如果用了scanf,再调用getchar,就会出现所谓的输入缓冲区问题,导致程序一
2017-08-23 20:14:59 11853 6
原创 C语言实现一个Window控制台带彩色,且可以用方向键选择并确认的菜单式列表(二) ---学生信息管理系统
http://blog.csdn.net/morixinguan/article/details/77485367上节,我们写了一个简单的列表框架,是关于学生信息管理系统的,这节,我们来把它尽量的完善一下。目前,我这边已经除了学生信息修改以及学生信息删除还没有做好,其余功能以及可以正常使用,我们来看看程序的实现,往后更新了这两个接口,会将本文继续修改。我们来看看代码的实现:student_proj
2017-08-23 00:27:19 2348 2
原创 C语言实现一个Window控制台带彩色,且可以用方向键选择并确认的菜单式列表(一)
在Linux的编程里,管理列表的形式,我们可以使用VT100控制码来进行实现。因为VT100控制码在printf函数中就可以设置显示的行和列,这样实现一个列表选择的GUI界面就非常容易。比如Linux内核中的Make menuconfig。我们可以看到像下面这样的GUI菜单式界面,这样的界面用Linux VT100控制码结合C语言是很容易就可以实现出来的。那么,在Window上想要在控制台实现类似
2017-08-22 20:45:16 10658 9
原创 C语言实现数组的循环左移,右移,翻转
数组结合指针可以实现很多有趣的功能,比如下面这个程序:假设数组为 : 12345如果左移一次即为:23451 ,依次类推如果右移一次即为:51234 ,依次类推翻转则为:54321我们来实现下这个程序:#include #include #include #define NR(x) (sizeof(x)/sizeof(x[0]))//数组左移 int buffer_left_move
2017-08-22 15:57:01 11741 1
原创 C语言结构体位段特性实现断言宏
关于位段的特性这里就不多说了,多去看看相应的C语言书籍都会有介绍了。今天来介绍断言宏。什么是断言宏?断言宏可以认为是校验数据范围的有效性的一个宏的实现。我们来看看代码:#include //结构体位段#define CHECK(x) sizeof(struct {unsigned:(-!!(x));})//检查常量是否在一定范围之内,如果不在范围之内,则编译报错
2017-08-21 23:23:27 1468
原创 C语言结构体数组同时赋值的另类用法
说到C语言结构体数组的同时赋值,许多人一想就会想到用以下的这种方法,咱们来写一个例子:#include struct student{ int a; int b ; int c ; };struct student array1[1000] ;int main(void){ int i ; for(i = 0 ; i < 1000 ; i++) { array[i]
2017-08-21 22:43:04 7705 2
原创 从Tiny4412--mma7660 gsensor驱动探索Linux内核I2C总线驱动框架
源码位于: driver/hwmon/mma7660.c参考博客:http://www.cnblogs.com/pengdonglin137/p/5240416.html参考mma7660的芯片数据手册:https://wenku.baidu.com/view/3ef59c28ed630b1c59eeb521.html 那么驱动分析完了,设备板级配置文件配置在哪里呢?代码位置:/arch/arm/
2017-08-21 21:33:54 2072
转载 MTK平台使用刷机软件刷机错误代码
https://jingyan.baidu.com/article/9c69d48f876a2913c9024efe.html
2017-08-18 17:16:41 1415
原创 strtok函数的应用
strtok函数是字符串函数库中的一个函数,函数原型如下:char *strtok(char s[], const char *delim);作用:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。例如:"hello,hi:what?is!the.matter;" 把这串字符串传入strtok函数,第二个delim写 ",:?!.;" , 这样就可以得到6个不同的子字符串。我们
2017-08-17 16:39:05 701
原创 关于加入NDK编译环境的方法以及如何加入PIE模块的编译选项
之前在编译一个公司的MTK平台的Android开机加密程序的时候死活编译不通过,后面发现,有一样东西没有设置:TOOLPREFIX = $(ANDROID_SRC_PATH)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-这一项指的是用Android交叉编译工具链中的arm编译器。当设
2017-08-17 11:48:56 1685 1
原创 C语言字符串的另类用法
讲这个例子前,咱们先来看一个简单的程序:字符串数组实现数字转字母:#include #include int main(void){ int num = 15 ; //26个字母 const char str[] = "abcdefghijklmnopqlstuvwxyz" ; //这个做法是将num这个十进制数通过取模转换为字母并输出,从程序看,即可知道是输出p char a
2017-08-16 15:19:17 944
原创 MTK Camera驱动框架学习
前面,我分析了Tpd和Keypad的驱动框架,其实大体都差不多,都是利用平台总线进行管理和注册。那么,今天要总结的是MTK平台的Camera驱动框架。参考博客:http://www.2cto.com/kf/201605/509354.html参考博客:https://wenku.baidu.com/view/5f818d537e21af45b207a807.html 参考博客:http://blo
2017-08-15 21:45:22 5057 2
原创 MTK Keypad驱动框架
上一节,看完了http://blog.csdn.net/morixinguan/article/details/7717020,tpd驱动框架的实现。那么这一节来分析下Keypad驱动框架的实现,其实大同小异,套路也是类似的,我们来看看:
2017-08-14 22:10:52 11816
原创 MTK tpd驱动框架
分析代码架构 mtk_tpd.c位置: kernel-3.18\drivers\input\touchscreen\mediatek\mtk_tpd.c.
2017-08-14 21:33:22 4810 4
原创 C++构造函数可向父类或者本类传参
在C++的构造函数中,子类继承父类,那么,在创建一个子类成员时,可以同时向父类或者子类的构造函数进行传参,实现方法如下:写一个例子:mul_argc.c#include #include using namespace std ; //英雄联盟类 class Hero{ private : int blood ; string name ; public : Hero(int
2017-08-13 18:23:44 3505
原创 MTK平台Android Gsensor数据校准与数据获取
http://blog.csdn.net/morixinguan/article/details/76850600上节,写WIFI MAC地址的时候我们已经知道,MTKAndroid系统的Gsensor校准的数据其实也是存储在NVRAM中的,Gsensor隶属于传感器系统架构。 接下来我们来看下Gsensor校准的基准图像: 那么如何来校准Gsensor的X,Y,Z三个方向呢?我们可以参考MTK提
2017-08-10 20:42:38 6909 1
原创 Android如何客制化adb shell进去后显示shell@xxxx的标识
首先,找到源代码,在external/mksh/mkshrc,打开这个文件后会看到开头有如下脚本:android4.2源码内容如下:: ${TERM:=vt100} ${HOME:=/data} ${MKSH:=/system/bin/sh} ${HOSTNAME:=android}: ${SHELL:=$MKSH} ${USER:=$(typeset x=$(id); x=${x#*\(};
2017-08-09 10:07:39 1680
原创 MTK中NVRAM WARNING的含义
最近在和NVRAM打交道,所以务必要总结一下知识点,如有雷同,纯属巧合。以下的知识点参考MTK_on_line最新的文档总结。在做开发的时候,搜索网络AP经常会看到NVRAM WARING警告的信息,后面会有对应的数值。NVRAM WARNING的含义:(1)NVRAM WARNING = 0x00 表示NVRAM文档不存在(2)NVRAM WARNING = 0x02 表示NVRAM版本
2017-08-09 09:06:04 1415
转载 Git内网服务搭建全过程
看到一篇搭建git服务器的文章,主要是公司内网搭建的,讲得非常详细,比廖雪峰的要完整,必须赞!http://developer.51cto.com/art/201507/483448.htm
2017-08-08 15:12:31 10586
原创 如何从MTK平台机器的NVRAM中获取WIFI mac地址
在MTK的机器中,如果不用特定的工具烧写MAC地址,在开机后打开WIFI后会显示: “NVRAM WARNING: Err=0x10”这就是没有烧写mac地址的原因,所以每次打开wifi,wifi的MAC地址都是一个随机产生的值,为什么会这样?答案在: vendor/mediatek/proprietary/packages/apps/CdsInfo/src/com/mediatek/connne
2017-08-07 16:27:41 7767 2
原创 HTML学习3---排版标记
上节,我们学习了boda常用的属性以及HTML的一些标记,但是图显示的效果却不是那么的好看。原因就是没有排版好,我们这次使用居中来使这个页面更好看一点,顺便多加入几个别的标记。 HTML排版标记(1) : 表示一个段落。一段文字放在p标记里就可以了。 常用属性:align 水平对齐方式,取值:left(左对齐)、cente
2017-08-04 14:06:04 1196
原创 HTML学习2---body常用属性以及文本修饰标记
上节 ,我们了解了网站制作相关的基础知识,也了解了制作网站需要用到的语言,以及一些简单的HTML的基础知识学习笔记:博文链接如下:http://blog.csdn.net/morixinguan/article/details/76457441这节,来写一下body常用属性以及文本修饰标记的常用属性(1)bgColor : 网页的背景色。 如: (2)Background : 网页背景图片地址 。
2017-08-01 23:38:14 2513
Tiny4412应用测试软件源码
2018-11-11
敦泰--FT5X06 Android驱动框架分析-杨源鑫.pdf
2018-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人