- 博客(43)
- 资源 (10)
- 收藏
- 关注
原创 ndk c调java
//// Created by lizhiduo on 17-9-23.//#include "com_example_lizhiduo_jni_JNI.h"JNIEXPORT jstring JNICALL Java_com_example_lizhiduo_jni_JNI_sayHello (JNIEnv * env, jclass obj){ retu
2017-09-23 17:12:29
435
原创 android 5.1 设备上使用 usb2com 时 【 tcgetattr() failed 】 错误问题解决
先利用Android 源码编译一个小测试程序测://test_tty.c#include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include
2017-09-15 11:16:49
2181
1
原创 usb转串口异步读取数据
该实验是通过usb转串口线连接了开发板的 uart3和pc。在pc上编译下面代码并执行#include#include #include #include #include #include #define MODEMDEVICE "/dev/ttyUSB0"#define FALSE 0#define TRUE 1int wait_flag=
2017-08-30 17:35:29
1717
原创 Installation failed with message Failed to establish session.
IDE: android studio 3.0 手机:小米 问题:安装apk时提示网上好多进入开发者模式关闭MIUI,和 在build.gradle文件里,降低android插件版本就行,例如降为 2.2.3。尝试过确实可以解决,但是觉得不方便,还是从工具本身入手。直接修改IDE,配置如下(取消红框内勾选):
2017-08-16 16:57:57
319
原创 网络adb调试(无root)
1.有root权限:adb shell 进入终端后执行下列命令:setprop service.adb.tcp.port 5555(也可以写到init.rc或build.prop文件中)stop adbdstart adbd cmd执行:adb connect ip:port2.无root权限:adb shell进入进入终端后执行:setpr
2017-08-04 14:34:07
3084
原创 ubuntu + xrdp + tigervnc 远程桌面
本教程适合ubuntu14.04和ubuntu16.04,简单方便,不需要安装任何桌面环境使用系统自带的桌面共享软件desktop Sharing,执行vino-preferences命令,然后配置如下:中文版:设置完成之后,使用vnc view(port: 5900)连接会提示权限不够,解决办法:运行dconf-editor(没有该命令需要安装sudo a
2017-05-12 13:55:46
5275
1
原创 调用非jni标准的第三方so(AS2.2)
经过两天的痛苦挣扎,总算跑通了,参考了许多网上的分享,但是没有一个可以跑通的,所以总结了一下,希望能帮助到大家。看这篇之前最好看一下另一篇博客:http://blog.youkuaiyun.com/qq_22918577/article/details/596419451.利用ndk-build编译so文件(环境变量修改可以参考网上教程)。创建hello->jni目录,然后编写
2017-03-03 13:42:28
1876
原创 android studio external tool + ndk测试
1.安装NDK打开Tools->Android->SDK Manager->SDK Tools选中LLDB和NDK,点击确认,软件会自动安装NDK。2.自定义命令javah:Program : $JDKPath$\bin\javah.exeparameters : -classpath . -jni -d $ModuleFileDir$/sr
2017-03-02 21:33:21
1176
转载 在Linux中增加swap空间
原贴地址:http://blog.youkuaiyun.com/%ef%bd%84%ef%bd%8c%ef%bd%98%ef%bd%95/archive/2007/06/13/1650097.aspx 在Linux中增加swap空间 发现swap空间不够,那应该怎么增加swap空间大小呢。swap和内存关系:mem mem > 2G, mem mem >
2016-11-23 19:14:17
351
原创 ubuntu 14.04 samba安装及使用
1. 安装samba服务器:sudo apt-get install samba2.修改配置:vim /etc/samba/smb.conf打开配置文件后,在配置文件最后添加如下信息:[share]path = /home/xxbrowseable = yeswritable = yes然后保存退出,其中path就是指定ubuntu下可以被
2016-11-22 16:14:39
1471
转载 window10 pl2303驱动解决
百度网盘地址下载PL2303的驱动http://pan.baidu.com/s/1kT7i6zX 然后直接安装。安装完成之后再次来到设备管理器,选中设备右键更新驱动程序软件:1.2.3,选择版本较低的驱动即可
2016-11-15 11:29:19
2400
原创 sha256
SHA有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。对于长度小于2^64位的消息,SHA256会产生一个256位(32byte)的消息摘要。#include #include #include #define maxlen 1000000typedef unsigned int uint;typedef unsigned ch
2016-06-15 11:05:38
1414
转载 进程上下文和中断上下文
1.内和空间和用户空间内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间
2015-12-08 20:33:05
271
转载 Linux程序编译速度提高方法
项目越来越大,每次需要重新编译整个项目都是一件很浪费时间的事情。Research了一下,找到以下可以帮助提高速度的方法,总结一下。 tmpfs 有人说在Windows下用了RAMDisk把一个项目编译时间从4.5小时减少到了5分钟,也许这个数字是有点夸张了,不过粗想想,把文件放到内存上做编译应该是比在磁盘上快多了吧,尤其如果编译器需要生成很多临时文件的话。 这个做法的
2015-10-18 00:26:38
577
原创 qt4.6.3移植以及一线tslib移植
准备:qt4源码友善提供的arm-qte-4.6.3-20100802.tar.gz编译器版本4.4.3.可以运行arm-linux-gcc -v查看一下。(一)。拷贝arm-qte-4.6.3-20100802.tar.gz,然后解压,进入arm-qte-4.6.3(1)。mini2440为我们的QtE-4.6.3 的编译制作了现成的脚本 build-all,所以,直接./bui
2015-10-17 15:29:10
311
转载 GNU
https://lug.ustc.edu.cn/sites/opensuse-guide/history.php附录E:历史和背景本章的目的是让读者大体见识和了解一下 GNU/Linux 的历史和生态系统及自由/开源软件 的背景知识。 E.1 源代码 vs. 二进制机器码计算机软件由各种不同的编程语言写成。如下源代码(source code) 是任何有适当训
2015-10-15 19:02:52
376
原创 制作源码补丁和给源码打补丁
1. 制作源码补丁假设原始的源码目录为src_code,修改后的源码目录为src_code_new。通过如下命令,就可以制作出源码补丁文件changes.patch。changes.patch中记录了src_code与src_code_new之间的差异。[root@localhost ~]# diff -urN src_code src_code_new
2015-10-13 21:00:57
2196
转载 配置tftp服务以及开发板中通过tftp下载文件
配置tftp服务的步骤: 1、安装相关软件包:tftpd(服务端),tftp(客户端),xinetd sudo apt-get install tftpd tftp xinetd2、建立配置文件(蓝色的目录是可以更改为其他地址的,例如/home/user/tftpboot) 在/etc/xinetd.d/下建立一个配置文件tftp sudo vi tftp 在文件中输入
2015-10-12 13:21:56
1069
转载 c/c++程序存储区
一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束释放。 4另外还有一个专门放常量的地方。 - 程序结束释放在函数体中定
2015-10-10 21:38:28
417
原创 linux下头文件
C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。自己指定的路径就不说了,这里说明一下系统自动搜索的路径。【1】include头文件路径除了默认的/usr/include, /usr/local/include等include路径外,还可以通过设置环境变量来添加系统include的路径:# C
2015-10-07 20:15:37
542
转载 java数据类型转换
Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。首先,来了解下数据类型的基本理解:数据是用来描述数据的种类,包括其值和基于其值基础上的可进行的操作集合。Java中数据类型主要分为两大类:基本数据类型和引用数据类型。基本数据类型共有8种,分别
2015-09-17 00:01:05
422
原创 jlink_for_linux
学习裸机时(2440),发现usb驱动有问题,电脑有时候识别不了,如是研究了一下jlink烧写程序。在window下也可以实现,但是我的代码都在linux下编写编译的,所以jlinx也就选择linux版的。安装jlink_for_linux:1. 下载安装包 JLink_linux_xx.tgz(官网下载地址:www.segger.com)解压#tar JLink_linux_xx.t
2015-08-10 11:03:01
538
转载 从nand拷贝到sdram
从Nandflash拷贝并跳转到SDRAM的过程弄清楚了,在这边做一下笔记。先上张图:1.当S3C2440被配置成从Nand Flash启动时, S3C2440的Nand Flash控制器会在 S3C2440上电时自动把NandFlash上的前4K代码搬移到Boot Internal SRAM,然后系统从起始地址是0x0000_0000的Boot I
2015-08-08 08:42:05
534
转载 跳转到sdram
arm在Nand flash启动模式下启动时系统会将Nand flash中的前4KB代码拷贝到SRAM(也就是Steppingstone中),由SRAM配置中断向量表和完成Nand flash访问的必要初始化,然后将Nand flash中的全部程序代码拷贝到SDRAM中,最后由SRAM跳转到SDRAM,然后程序就正常执行了。 如下代码:.extern main.text
2015-08-08 08:30:22
866
转载 C语言中volatile关键字的作用
1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变
2015-08-03 14:06:04
248
转载 函数返回类型为指针类型时
1.先看程序:#includechar *returnStr(){ char *p = “tigerjibo”; return p;}int main(){ char*str; str =returnStr();
2015-08-03 14:02:27
456
转载 C语言程序的存储区域
一.C语言程序的存储区域1.由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。2.C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成。在程序运行时又会产生其他几个部分,各个部分代表了不同的
2015-08-03 13:56:05
563
转载 C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
从作用域看:1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。2>静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别在于全局变量对所有的函数都是可见的,而静态局部变量只对定义自己的函数体始终可见。
2015-08-03 13:49:53
290
原创 .WORD作用
说说这个.word的作用。 word expression就是在当前位置放一个word型的值,这个值就是expression 举例来说, _rWTCON: .word 0x15300000 就是在当前地址,即_rWTCON处放一个值0x15300000 翻译成intel的汇编语句就是: _rWTCON dw 0x15300000例如:ldr
2015-08-01 17:58:29
341
转载 linux命令行终端的翻屏滚屏
linux命令行终端的翻屏滚屏more/less/head/tail (2012-03-16 10:56:57)转载▼标签: 杂谈分类: Linux笔记屏幕翻页快捷键 shift+PgUp 向前翻看,一般翻13页左右。shift+PgDown 向后翻看,一般翻13页左右。 我们翻阅目录
2015-07-20 23:20:54
74127
3
转载 ARM机器码分析
我们编写的汇编程序还是不够底层,CPU都是对机器码进行操作的,所以还需要用汇编器将汇编代码转换成机器码才能被CPU处理。下面举几个例子来说说分析ARM机器码的方法。 对编译连接之后得到的ELF进行反汇编:arm-linux-objdump 查看得到的反汇编代码。这里如果想同时看到汇编代码和机器码,在编译的时候需要加上-g调试选项。 1、mov r1,#0xf
2015-07-20 22:59:10
1379
转载 全排列(含递归和非递归的解法)
转载请注明出处:http://www.cnblogs.com/bakari/archive/2012/08/02/2620826.html 谢谢!全排列在近几年各大网络公司的笔试中出现的比较频繁首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: ab
2015-07-13 13:30:06
277
转载 汉诺塔递归算法
汉诺塔问题描述: A、B、C 三个桌子,其中A桌子上放了几个大小不同的盘子,盘子的排列顺序为: 从上到下,依次从小到大递增;现要求把这些盘子从 A 桌子上移动到 C 桌子上,盘子移动时有一点要求:每次移动必须保证三张桌子上大盘子在下、小盘子在上;打印移动次序。如 A 上一张 盘子时,移动顺序: A -> C代码实现:[cpp] view plaincop
2015-07-13 10:46:39
459
转载 Uboot启动流程分析
Uboot是嵌入式系统中最常用的bootloader,这里我们以s3c2410为例分析一下uboot的启动流程。首先通过uboot的链接文件,我们可以看到uboot运行是执行的第一段代码在start.S中。ENTRY(_start) SECTIONS { . = 0x00000000; . = AL
2015-07-11 23:23:31
355
转载 linux系统中如何查看日志(常用命令)
Linux IDE RedHat 防火墙活动 .cattail -f日 志 文 件 说 明/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一/var/log/secure 与安全相关的日志信息/var/log/maillog 与邮件相关的日志信息/var/log/cron 与定时任务相关的日志信息/var
2015-07-11 14:15:46
525
转载 printk小结
1 printk 消息级别定义#define KERN_EMERG "" /*紧急事件,一般是系统崩溃之前的提示消息*/#define KERN_ALERT "" /*必须立即采取行动*/#define KERN_CRIT "" /*临界状态,通常涉及严重的硬件或者软件操作失败*/#define KERN_ERR "" /*用于报告错误状态,设备驱动会经常使用KE
2015-07-11 10:38:14
269
转载 对Makefile、Kconfig与.config文件的再次理解
1.我们要在内核中增加程序(比如驱动程序),并且使这个驱动程序能够编译进内核,基本分为两大部分。首先我们要告诉内核“请您下次编译的时候捎带上我”,即需要我们进行内核的相关配置,这就需要对相关Makefie和Kconfig文件进行修改,以便让内核知道将要对这个新的驱动程序进行编译。而仅仅只告诉内核“我需要你编译我”还不行,更重要的是让内核真正的去“行动”,即编译内核。2.Makefile文集
2015-07-09 16:22:37
270
转载 单链表及其操作
单链表图7 - 3是单链表的结构。单链表有一个头节点h e a d,指向链表在内存的首地址。链表中的每一个节点的数据类型为结构体类型,节点有两个成员:整型成员(实际需要保存的数据)和指向下一个结构体类型节点的指针即下一个节点的地址(事实上,此单链表是用于存放整型数据的动态数组)。链表按此结构对各节点的访问需从链表的头找起,后续节点的地址由当前节点给出。无论在表中访问那一个节点,都需
2015-07-05 14:19:59
549
test-jni.7z
2017-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人