- 博客(38)
- 资源 (3)
- 收藏
- 关注
原创 给Android Studio配置本地gradle和maven镜像地址,加快访问速度
Android Studio在创建工程后默认会访问Google自己的官网去下载gradle和maven依赖项,国内访问Google的速度相当慢,如果没有科学上网的话,甚至无法访问。本文记录如何解决这些问题。
2025-04-03 15:58:38
443
原创 快速搭建基于musl库的交叉编译环境
进行嵌入式开发,难免会使用到musl库,是一个轻量级的C标准库实现,专注于性能和可移植性。它提供了一种替代传统()的方案,适用于需要高效、轻量级标准库的项目。本文记录如何使用musl-cross-make快速地搭建一个musl交叉编译环境。musl-cross-make 是一个基于 Makefile 的简单、快速但高级的构建方法,用于生成针对 musl 的交叉编译器。
2024-09-19 09:59:37
1423
3
原创 为二进制文件添加.gnu_debugdata调试信息
在使用gcc/g++编译二进制文件过程中,如果添加了-g参数,编译出来的二进制文件会带有debug信息,供调试使用。但是debug信息往往占用空间很大,导致二进制文件太大,在发布到生产环境时,一般会去掉调试信息,以减小二进制文件大小。如此一来,在出现问题后就无法直接使用gdb调试工具进行调试了。一种可行的做法是版本发布时保留debug信息,出现问题后使用debug信息进行问题分析调试,但这种做法相对比较麻烦。mini debuginfo的技术提供了一种有效的解决思路。
2024-07-11 11:39:06
1089
原创 向openHarmony设备添加gdb调试工具
CC/CXX为gcc/g++交叉编译工具的路径,使用apt install安装后,默认在/usr/bin目录,可以使用which gcc/which g++命令查询具体路径。执行完以上命令后,会在build目录下生成gdb的Makefile文件。编译好的二进制文件保存在build/gdb目录下。将下载好的gdb-xxx.tar.gz上传到Linux编译环境上对应目录,进行解压。以上步骤执行成功后,就可以在openHarmony设备上使用gdb调试程序了。解压后进入gdb目录,并创建build目录。
2024-06-29 11:42:03
487
原创 向openHarmony设备添加perf文件
先执行apt-cache search命令查询可用的Linux源码包,然后执行apt install命令安装对应的源码包。能够展示perf的帮助信息,说明添加perf成功,可以使用perf进行性能数据抓取了。
2024-06-29 10:50:55
350
原创 英文版委托书
Personal power of attorneyI, XXX, Passport No. xxx, hereby authorize XXX, Passport No. xxx, as my agent, to handle the account unlocking, email updating, smarttoken activation and other related matters of Raiffeisen bank on my behalf until my bank acc.
2021-06-23 15:53:26
238
原创 罗文委托书
Puterea personală de avocatL-am, XXX, pașaport nr. XXX, autorizez prin prezenta XXX, pașaport nr. XXX, ca agentul meu, să se ocupe de deblocarea contului, actualizarea de e-mail, activarea Smarttoken și alte probleme conexe ale băncii Raiffeisen în nu.
2021-06-23 15:47:27
190
转载 Windows命令行命令大全
net use ipipc$ " " /user:" " 建立IPC空链接 net use ipipc$ "密码" /user:"用户名" 建立IPC非空链接 net use h: ipc$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H: net use h: ipc$ 登陆后映射对方C:到本地为H: net use ipipc$ /del 删
2014-09-13 10:34:50
2715
原创 在自己的电脑上安装wordpress
有些筒子想体验以下wordpress,或者是还没有购买域名空间,想先在本地机做试验,等熟练了以后再将wordpress安装到服务器上去。本篇文章就是专门为了解决这些问题而写的~~在自己的电脑上安装wordpress其实和在服务器上安装大同小异,只不过是多了搭建服务器的一步。那么搭建服务器是不是会很麻烦呢?事实上一点儿也不麻烦,一款叫作Wamp5的软件就可以轻松地解决此问题。目前可以下载到的
2012-03-21 20:43:38
3927
原创 用手机平板电脑的WIFI连接电脑共享上网
现在很多筒子们都有一款具有WIFI功能的手机或平板电脑,但却苦于WIFI网络信号差或者资费高而只能“望机兴叹”。看完本文就可以轻松地帮你解决这个令人头疼的问题。废话少说,让我们进入正题吧。首先,同时按住“Windows键+R”或者“开始->运行”,在搜索框输入”cmd”并按回车打开命令行。在命令行输入以下命令:netsh wlan set hostednetwork mode=allow
2012-03-19 11:30:26
7865
原创 wordpress安装教程
作为一种开源、免费的blog搭建平台,wordpress凭借其插件丰富,易于扩充功能,安装和使用非常方便等特点,越来越受到网站建站人士的青睐。使用WordPress平台的发行商目前约有3000万,占全球网站的10%。而WordPress官方网站的每月独立访问用户数则达到3亿。毫无疑问,wordpress已经成为主流的博客搭建平台。今天就来介绍一下如何用wordpress搭建自己的博客平台。
2012-03-19 10:25:07
1027
转载 linux2.6 内核的 initrd
http://www.bloger.com.cn/user8/cctv/420006.htmlLinux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,
2011-12-03 01:06:52
1187
转载 ARM Linux启动过程分析
原文:http://www.100paper.com/100paper/jisuanji/jisuanjililun/20080531/48230.html摘 要: 嵌入式 Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。本文以S3C2410 ARM处理器为例, 详细分析了系统上电后 bootloa
2011-11-12 16:09:46
1222
1
原创 const修饰符的作用
const修饰符的使用是笔试和面试中经常会遇见的,以前对其作用不是很明确,今天通过仔细地学习,有了较为全面的理解和认识,总结一下。1.修饰基本数据类型这个最简单,如const int a,const char b,const double c.表示a,b,c是常量,其值不可修改,在定义时就要对其进行初始化。2.修饰指针类型const一旦与指针联系起来就容易犯迷糊了,
2011-11-05 03:00:58
1108
原创 HTC XV6850 Android系统移植资源索引
因为这方面的资源实在是太难找,现将开发过程中所遇到的有用资源做一索引,方便以后查看(my git repository:https://gitorious.org/~sprintwind)怎么编译Android内核模块:http://forum.ppcgeeks.com/android-tp2/136054-how-compile-your-own-kernels-
2011-11-04 17:57:14
1460
转载 重构os.nb.payload教程
本文来自二把刀樂園,文章地址:http://hi.baidu.com/2badao/blog/item/cc7392587b7ad8d79c8204de.html重构os.nb.payload教程(扩建/缩小XIP区域、缩小/删除UDLR、前移IMGFS等)第一章:这篇教程的用途这篇教程的用途,如标题所言,介绍扩建/缩小XIP区域、缩小/删除UDLR、前移IMGFS等知识,然后
2011-10-27 14:07:22
2408
1
转载 LK bootloader
原帖地址:http://blog.youkuaiyun.com/hankhanti/article/details/6133570Android Boot loader 的 code 在 bootable/bootloader/lk 底下, LK 是 Little Kernel 的缩写, 是 andriod bootloader 的核心精神. 入口函数在 kernel/main.c 中的
2011-10-23 21:39:31
4889
原创 Android系统移植1.5--插曲
Android在HTC XV6850上的移植前几天陷入了僵局,一是因为在淘宝上买的开发机还没到,二是因为找了好久都没找到HTC XV6850的主板型号或者硬件信息,想移植bootloader都不知道从哪儿入手。今天手机总算是拿到手了,试了一下fluyu的preRaph,发现写不进去.img映像文件。可能是我下的fastboot有问题吧,待会儿有心情了下载别的fastboot试一下。令人欣慰
2011-10-21 16:20:44
1389
原创 static变量对照表
变量类型 存储位置 作用域 特点 全局变量 全局数据区 整个工程 在整个工程中都可见,其他文件可以通过extern关键字引入静态全局变量 全局数据区 声明它的文件 只在声明它的文件中可见 静态局部变量 全局数据区
2011-10-20 23:01:50
646
原创 修改initrd.gz的方法
root账号进入ubuntu, 用下面的命令解包initrd.gz:打开终端,进入initrd.gz所在目录,先解压initrd.gz:#gunzip initrd.gz 在当前目录下建立一临时目录tmp:#mkdir tmp#cd tmp下面把上级目录内解包的initrd进一步用cpio解包:#cpio -i -F ../initrd对目录内解包的initrd
2011-10-20 22:53:58
11041
原创 Android系统移植1--创建ARM-Linux交叉编译环境
从今天开始学习嵌入式系统的开发,将以硬件条件不错,但是被预装了Windows Mobile系统的HTC XV6850作为目标板。我知道前路困难重重,但还是愿意做一下尝试。因为HTC XV6850是ARM1136EJ-S的CPU核心,先搭建起基于ARM的Linux交叉编译环境。
2011-10-16 21:00:30
1561
原创 2011西安迅雷C++笔经
2011.10.10,迅雷真会挑日子,选在这么整齐的一天来进行他们的技术类笔试。不过天气着实不咋样,今天西安一整天都灰蒙蒙的,能见度非常低,正如今天笔试后的心情。本来没打算去迅雷的,想准备一下网上用友的面试,因为好不容易有家找.NET的还不错的公司。最后上分智看了一下工资,还
2011-10-10 23:53:48
1813
转载 进程与线程的区别
进程 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。
2011-10-06 02:23:21
402
转载 堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) —
2011-10-06 02:07:23
463
转载 变量的存储方式和存储类别
1、动态存储方式与静态存储方式 存储期可以分为静态存储期(static storage duration)和动态存储期(dynamic storage duration)。这是由变量的静态存储方式和动态存储方式决定的。所谓静态存储方式是指在程序运行期间,系
2011-10-06 01:59:26
1505
转载 四种进程线程同步机制
现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的:1.临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。2.互斥量:为协调共同对一个共享资源的单独访问而设计的。3.信号量:为控制一个具有有限数量用户资源而
2011-10-06 00:15:32
1610
转载 volitale关键字详解
就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。 推荐一个
2011-10-06 00:00:09
914
转载 智能指针Boost.smart_ptr学习6--intrusive_ptr
intrusive_ptr头文件: "boost/intrusive_ptr.hpp"intrusive_ptr 是shared_ptr的插入式版本。有时我们必须使用插入式的引用计数智能指针。典型的情况是对于那些已经写好了内部引用计数器的代码,而我们又没有时间去重写它
2011-10-04 15:17:54
744
转载 智能指针Boost.smart_ptr学习5--shared_array
shared_array头文件: "boost/shared_array.hpp"shared_array 用于共享数组所有权的智能指针。它与shared_ptr的关系就如scoped_array与scoped_ptr的关系。shared_array 与 shar
2011-10-04 14:54:57
1207
转载 智能指针Boost.smart_ptr学习4--shared_ptr
shared_ptr头文件: "boost/shared_ptr.hpp"几乎所有稍微复杂点的程序都需要某种形式的引用计数智能指针。这些智能指针让我们不再需要为了管理被两个或多个对象共享的对象的生存期而编写复杂的逻辑。当引用计数降为零,没有对象再需要这个共享的对象
2011-10-04 14:46:50
1291
转载 智能指针Boost.smart_ptr学习3--scoped_array
scoped_array头文件: "boost/scoped_array.hpp"需要动态分配数组时,通常最好用std::vector来实现,但是有两种情形看起来用数组更适合: 一种是为了优化,用vector多少有一些额外的内存和速度开销;另一种是为了某种原因,要
2011-10-04 14:18:18
1178
转载 智能指针Boost.smart_ptr学习2--scoped_ptr
头文件: "boost/scoped_ptr.hpp"boost::scoped_ptr 用于确保动态分配的对象能够被正确地删除。scoped_ptr 有着与std::auto_ptr类似的特性,而最大的区别在于它不能转让所有权而auto_ptr可以。事实上,scoped
2011-10-04 14:11:09
870
转载 智能指针Boost.smart_ptr学习1--为什么使用智能指针
我们学习C++都知道智能指针,例如STL中的std::auto_ptr,但是为什么要使用智能指针,使用它能带给我们什么好处呢?最简单的使用智能指针可以不会因为忘记delete指针而造成内存泄露。还有如果我们开发或者使用第三方的lib中的某些函数需要返回指针,这样的返回的指
2011-10-04 13:59:56
1051
转载 Explicit关键字的作用
explicit,和构造函数一起使用. explicit constructor指明构造函数只能显示使用,目的是为了防止不必要的隐式转化. 举个例子: 有这样一段代码: class A { public:
2011-10-04 00:22:08
660
转载 四种强制类型转换的总结(const_cast、static_cast、dynamic_cast、reinterpreter_cast)
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。
2011-10-03 23:59:05
20724
1
原创 动态规划相关问题源码(包括矩阵链乘、LCS、和max sum)
functions.h#include using namespace std;#define SIZE 100 //数组大小//****重载的计算数组长度函数****int length(int a[]);int length(char a[])
2010-10-16 11:45:00
783
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人