- 博客(19)
- 资源 (19)
- 收藏
- 关注
原创 如何来实现一个Linux内核的系统调用(基于tiny4412开发板)
关于系统调用,相信学习过操作系统的同学应该都不陌生。那么,什么是系统调用?百度的权威解释如下:点击打开链接 由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。 那么我们编程实验过程中使用过哪些系统调用呢? 当我们要打开一个文件,对这个文件进行
2017-01-29 22:56:27 1602
原创 关于tiny4412 usb接线接到电脑USB接口无效的解决方法
一般情况下会出现CDC serial 和 ADB设备安装失败。这时候我们就要手动进行安装了打开Window设备管理器鼠标右键打开带?号的驱动程序--->选择驱动程序--->更新驱动程序--->浏览计算机以查找驱动程序软件--->从计算机的设备驱动程序列表中选择。ADB对应的就是 ADB interfaceCDC对应的就是USB Interface
2017-01-27 13:38:42 2575 5
原创 手把手教你写Kconfig---基于tiny4412开发板
今天,我就来教大家写写最简单的Kconfig,什么是Kconfig?简单的说吧,它是一个Linux驱动的配置文件,配置什么东西呢?在linux设备驱动中,我们写的驱动程序最终会加入到内核的Makefile中进行编译,那么具体要编译成什么呢?要编译成.o文件还是.ko文件,还是不编译?由那个命令来进行配置呢?那就是make menuconfig在这个menuconfig中,有很多菜单,其实,那些就是
2017-01-26 15:49:04 2532 1
原创 tiny4412 Android 5.0编译出现:clang++: error: unable to execute command: Killed
clang++: error: unable to execute command: Killedclang++: error: clang frontend command failed due to signal (use -v to see invocation)clang version 3.5 Target: i386--linux-gnuThread model: posixclang
2017-01-24 17:59:16 3996
原创 用友善提供的4.5.1解压后,运行/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc -v出错
通过查阅百度和谷歌,以下解决方法:The problem has been solved, because I installed the amd64.iso linux system,so first must excuse apt-get install lsb-core,then you can excuse arm-linux-gcc -v也就是64位系统需要安装lsb-core这个库才行
2017-01-24 14:45:45 1596
原创 Git工具的安装和日常使用
git的安装很简单,只要一句命令就可以解决了。(1)安装Gitsudo apt-get install git(2)git的使用1、获取仓库的全部源代码git config --global user.name "morixinguan" //这个对应的是我的github社区的用户名git config --global user.email "mo
2017-01-23 00:48:19 1214
原创 ubuntu14.04源无法更新--jdk安装出错解决方法
今天真是背。。。安装了一晚上的源都安装不成功,一直提示校验和有问题。于是问了其他大神,很多人提供了方法,但都没什么用,后来用以下这种方法解决了问题,因为update不成功导致后面java jdk7安装不成功。我解决方法是这样的,用了阿里云的源如下:deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiv
2017-01-23 00:03:39 642
原创 手把手教你写第一个Linux驱动程序
说到写第一个linux内核驱动程序,再简单不过了。以前也写过,这次将做一个图形化的整理。我这里以我的开发环境tiny4412为主,我将在这上面写第一个驱动程序。首先,我在driver/目录下创建yangyx目录,在目录下新建一个hello.c和一个Makefilehello.c内容如下:hello.c包含的头文件就类似咱们写标准C一样的头文件。驱动程序__init ,加上这个,程序在编译的过程中会
2017-01-19 22:57:14 10820
原创 VIM快速索引Linux内核中的API
在源码目录下:Ctag -R . 前提是已经安装了Ctag这个工具然后会目录下生成索引文件。如何搜索:ep:vim -t memcpy 回车会出现索引,按esc两次,根据信息提示选择标号进入API进到API后 : ctrl + ] 进入另一个api,返回 ctrl + o如果要在一个文件中找本文件中没有的API,可以到VIM的命令行模式,按esc,然后: ep : 输入 ,回车 cst
2017-01-19 21:18:36 678
原创 Android编译注意事项
1、make bootimage 编译生成kernel.img和boot.img的整合会在out目录下生成以下文件。Target ram disk: out/target/product/em_t8350_emmc/ramdisk.imgTarget boot image: out/target/product/em_t8350_emmc/boot.img2、清除kernel的所有.o文件:rm
2017-01-12 09:56:43 918
原创 用指针检测大小端模式
#include #include //用指针的方式检测机器的大小端模式int small_port(){ int a = 1 ; char b = *((char *)(&a)) ; return b ;}int main(void){ int i = small_port(); if(1 == i) printf("小端模式\n"); else prin
2017-01-11 15:18:23 1822
原创 一年后再次回头看container_of宏的作用
container_of宏在很久以前的文章我就已经有分析写过了,但是看回去,感觉以前自己对这个宏的表达描述分析能力还是有待提高,毕竟那时候刚接触linux内核不久,整个人都懵懵哒,无法说得让别人通俗易懂。那么这个宏整体是什么样子的呢?//获取结构体成员相对于结构体的偏移 #define offsetof(TYPE,MEMBER) ((int) &((TYPE *)0)->MEMBER) //
2017-01-11 14:58:47 3058 3
原创 makefile学习
俗话说,不会写makefile的程序员不是好的程序员。看了很多人写的makefile教程,感觉太难懂,还不如韦东山老师视频里讲的好理解。先记下这几个符号,以后看到就不会忘记这是什么东西了。先来看一个例子:Person: main.o person.o g++ -o $@ $^ %.o : %.cpp g++ -c -o $@ $< clean:
2017-01-09 21:02:39 802
原创 offsetof宏的原理以及作用
原理:虚拟一个TYPE类型的结构体变量,通过TYPE.MEMBER的方式来访问MEMBER成员,进而得到MEMBER成员相对于整个结构体首地址的偏移量。作用:为接下来的container_of宏的讲解出现做铺垫offsetof宏: #define offsetof(TYPE,MEMBER) ((int) &((TYPE *)0)->MEMBER)接下来看看例程就明白了,其实这个宏挺简单的,&((T
2017-01-09 16:50:49 1722
原创 结构体对齐的方式(自动对齐和手动对齐)
#include //默认情况下,结构体一般在内存中的自动对齐格式是4个字节 //结构体设置手动对齐 //如果这里是4,那么下面的打印就是8 //如果这里是2,那么下面的打印就是6 //如果这里是1,那么下面的打印就是5 #pragma pack(4)struct mystu{ char a ; int b ;};#pragma pack()int
2017-01-09 12:05:25 2728
原创 Linux打补丁常用命令
生成补丁文件diff -Nurp 源文件或文件夹 新的文件或文件夹 > xxx.patch打补丁patch -p0 操作需要在当前目录下,先比较两个文件或文件夹的不同,再用patch将生成的xxx.patch打到目标文件或文件夹中。
2017-01-09 10:22:04 1499
原创 Linux下开源的DDR压力测试工具
测试可以采用 sdk 下的google开源工具 external/stressapptest也可以采用 开源的memtester。(1)stressapptest 其是:Stressful Application Test (stressapptest) 的简称 Stressful Application Test试图让来自处理器和I/O到内存的数据尽量随机化,以创造出模拟现实的环境来测试现在的硬
2017-01-06 09:21:43 9380
原创 利用strstr与atoi的结合实现一个C语言获取文件中数据的工具
源代码如下:#include #include #include #include #include int get_buf_data(char *buf,char *data){ char *p1 =NULL,* p2=NULL; int num =0; p1 = buf; p2 = strstr(p1,data); if(p2 == NULL)
2017-01-05 14:53:04 866
转载 .cc和.cpp的区别
This caused a few problems the first time C++ was ported to a system where case wasn't significant in the filename, however, and different users adopted different solutions: .cc, .cpp, .cxx and possib
2017-01-05 10:31:52 13782
Tiny4412应用测试软件源码
2018-11-11
敦泰--FT5X06 Android驱动框架分析-杨源鑫.pdf
2018-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人