- 博客(62)
- 收藏
- 关注
原创 .NET之道
.NET平台的主要优点:对已有代码具有完全的互操作性: 支持多种编程语言: 所有支持.NET的语言共享的公共运行时引擎: 语言集成: 全面的基础类库: 简化的部署模型:.NET平台构造块:(CLR\CTS\CLS) 从程序元的角度,.NET可以理解为一个运行库环境和一个全面的基础类库。 CLR:公共语言运行库 为了定位、加载和管理.NET...
2019-08-18 22:18:21
153
原创 makefiel制作
1.autoscan首先运行autoscan命令,它会在给定目录及其子目录树中检查源文件,若没有给出目录,就在当前目录及其子目录树中进行检查。它会搜索源文件以寻找一般的移植性问题并创建一个文件件“configure.scan”,该文件就是接下来autoconf要用到的“configure.in”原型。2.autoconfconfigure.in是au
2016-11-30 08:49:46
355
原创 linux文件操作(一)
1.linux文件结构 它们为操作系统服务和设备提供了一个简单而统一的接口。在linux中,一切都是文件。大数情况下你只需要使用五个基本的函数-open close read write ioctl。目录也是文件,正常情况下所有用户都必须用上层的opendir/readdir接口来读取目录,不需要了解特定系统中目录实现的具体细节。2.目录 文件,除了本身
2016-10-04 17:07:24
426
原创 shell详解九
1.调试脚本程序脚本程序的调试通常都很容易,但并没有特定的辅助工具。当出现错误时,shell一般都会打印出包含错误的行的行号。如果这个错误并不是非常明显,我们可以添加一些额外的echo语句来显示变量的内容。因为脚本程序是解释执行的,所以在脚本程序的修改和重试过程中没有编译方面的额外开支。命令行选项 set选项 说明sh -n set -o noexec set -n 只检查语
2016-10-04 12:52:46
310
原创 shell详解八
1.算术扩展1.expr命令,它允许对简单的算术命令进行处理,但这个命令执行起来相当慢。使用$(())中能够更有效地完成简单的算术运算。这里与x=$(...)命令不同,两对圆括号用于算术替换,而我们之前见到的一对圆括号用于命令的执行和获取输出。2.参数扩展foo=fredecho $foo但当我们在变量后附加的字符时就会遇到问题。例如处理名为1_tmp和2_
2016-10-04 12:21:20
510
原创 shell详解七
1.使用grep命令在文件中搜索字符串。事实上,一种非常常见的用法是在使用find命令时,将grep作为传递给-exec的一条命令。grep命令使用一个选项,一个匹配的模式和要搜索的文件:grep [options] PATTERN [FILES]如果没有提供文件名,则grep命令将搜索标准输入。-C 输出匹配行的数目,而不是输出匹配的行-E 启用扩展表达式-h 压
2016-10-03 22:31:59
324
原创 shell详解 六
1.unset命令unset命令的作用是从环境中删除变量或函数。这个命令不能删除shell本身定义的只读变量#/bin/shfoo="Hello World"echo foounset fooecho foo2.find命令它的功能是查找文件,它及其有用,它不仅仅是因为它有选项,测试和动作类型的参数,也由于其中一个参数的处理结果可以影响后续参数的
2016-10-03 21:53:25
307
原创 shell详解五
1.export命令export命令将作为它参数的变量导出到子shell中,并使之在shell中有效。1)导出变量#!/bin/shecho "$foo"echo "$bar"这个是export2#!/bin/shfoo="The first meta-syntactic variable"export bar="The second meta-
2016-10-03 21:13:05
354
原创 shell详解四
1.命令shell脚本程序内部执行两类命令,一类是可以在命令提示符中执行的普通命令,也成为外部命令。一类是我们提到的内置命令,也称内部命令。1)break命令用这个命令在控制条件未满足之前,跳出for,while,或until循环。可以用break命令提供一个额外的数值参数来表明所要跳出的循环成熟,在默认情况下,break只跳出一层循环。#!/bin/shrm
2016-10-03 19:56:31
481
原创 shell详解三
1.命令列表 有时,我们想要将几条命令连接成一个序列。 if [ -f this_file ] ; then if [ -f that_file ] ; then if [ -f the_othe_file ] ; then
2016-10-03 19:05:51
267
原创 shell详解二
1.控制结构在下面的小节中,各语句的语法中的statements表示(when、while或until)测试天剑满足时,将要执行的一系列命令。1.if语句if conditionthenstatementselsestatementsfi 2.elif语句#!/bin/shecho "Is it morning?Ple
2016-10-03 18:35:13
505
原创 shell 详解
1.变量:字符串、数字、环境和参数。2.条件:shell中的布尔值。3.程序控制:if、elif、for、while、untill、case。4.命令列表:5.函数。6.shell内置命令。7.获取命令的执行结果。8.here文档。 $salutation=Hello $echo $salutation在shell中,
2016-09-30 16:54:45
446
转载 qt QPalette的应用
QPalette类相当于对话框或控件的调色板,它管理着控件或窗体的所有颜色信息,每个窗体或控件都包含一个QPalette对象,在显示时按照它的QPalette对象中对各部分各状态下的颜色的描述来进行绘制。QPalette类有两个基本的概念,一个是ColorGroup,另一个是ColorRole。void QPalette::setColor ( ColorRole role, co
2016-07-11 16:09:34
427
原创 DXF文件解析
1.首先下载dxflib库,这个库是c++写的。2.下载地址:晚上给出网址。我自己的网盘。http://www.ribbonsoft.com/en/dxflib-downloads
2016-07-05 17:16:24
3063
原创 linux文件解压的参数
.tar.gz 格式解压为 tar -zxvf xx.tar.gz.tar.bz2 格式解压为 tar -jxvf xx.tar.bz2
2016-07-05 16:56:54
314
原创 通用树结构的链式存储
#ifndef _LINKLIST_H_#define _LINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode LinkListNode;struct _tag_LinkListNode{ LinkListNode* next; }; LinkList* LinkList_Create()
2016-06-29 23:27:00
528
原创 用栈来表示队列
#ifndef _LINKLIST_H_#define _LINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode LinkListNode;struct _tag_LinkListNode{ LinkListNode* next;};LinkList* LinkList_Create();vo
2016-06-28 23:37:55
423
原创 线性队列的改变
#ifndef _SEQQUEUE_H#define _SEQQUEUE_Htypedef void SeqQueue;SeqQueue* SeqQueue_Create(int capacity);void SeqQueue_Destroy(SeqQueue* queue);void SeqQueue_Clear(SeqQueue* queue);int SeqQueu
2016-06-27 16:08:46
270
原创 链式存储队列
#ifndef _LINKLIST_H_#define _LINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode LinkListNode;struct _tag_LinkListNode{ LinkListNode* next;};LinkList* LinkList_Create();vo
2016-06-25 23:07:16
331
原创 队列 线性队列
#ifndef _SEQLIST_H_#define _SEQLIST_H_typedef void SeqList;typedef void SeqListNode;SeqList* SeqList_Create(int capacity);void SeqList_Destroy(SeqList* list);void SeqList_Clear(SeqList* list
2016-06-25 17:51:12
514
原创 uboot移植准备工作三
2.5.11.2 )1. TTB就是translation table base 转换表基地址。首先要明白什么是TT(translation table转换表),TTB其实就是转换表的基地址。2. 转换表是建立一套虚拟地址映射的关键。转换表分2部分,表索引和表项。表索引对应虚拟地址,表项对应物理地址。一对表索引和表项构成一个转换表单元,能够对一个内存块进行虚拟地址转换。(映射中基本规定中规
2016-06-24 09:24:23
681
原创 uboot移植准备四
第二部分 start_armboot(void)函数简介1. 在uboot/lib_arm/board.c中 从327-798。这不是全部,因为里面还调用了别的函数。2. 为什么这么长的函数,怎么不分成两三个函数?主要因为这个函数整个构成了uboot启动的第二阶段。3. 宏观分析:uboot第二阶段应该做什么? 概况来讲,uboot第一阶段主要是初始化soc内部的一些部件(譬如,看门狗
2016-06-24 09:21:48
3034
原创 uboot移植准备工作二
第一部分2.3.1uboot配置编译实践1)源头的源代码时uboot官网下载的。这个下载的源代码可能没有你当前使用的开发板的移植,甚至找不到当前开发板使用的SoC对应的移植版本。2)SoC厂商在退出一款SoC后,厂商的工程师会去uboot官网下载一个uboot,根据自己Soc进行第一步移植,移植的目标是厂商推出的开发板。(譬如三星的S5PV210芯片厂商出的开发板就叫SMDKV210)
2016-06-24 09:03:51
3340
原创 栈的链式 结构实现
1.这个继承了线性链表的特性。#ifndef _LINKLIST_H_#define _LINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode LinkListNode;struct _tag_LinkListNode{ LinkListNode* next;};LinkList* L
2016-06-23 14:46:51
335
原创 栈 顺序结构的实现
1 实现原理,复用了线性表的顺序结构。 栈最大特点:后进先出。 具体代码如下:#ifndef _SEQLIST_H_#define _SEQLIST_H_typedef void SeqList;typedef void SeqListNode;SeqList* SeqList_Create(int capacity);void SeqList_Des
2016-06-23 09:49:22
406
原创 双向循环链表
#ifndef _DLINKLIST_H_#define _DLINKLIST_H_typedef void DLinkList;typedef struct _tag_DLinkListNode DLinkListNode;struct _tag_DLinkListNode{ DLinkListNode* next; DLinkListNode* pre; };
2016-06-22 20:27:54
213
原创 循环链表
1.游标的定义 。定义一个当前指针。2 获取当前游标指向的数据元素。3 将游标重置指向链表中的第一个数据元素 4 将游标移动指向到链表中的下一个数据元素。5 直接指定删除链表中的某个数据元素。#ifndef _CIRCLELIST_H_#define _CIRCLELIST_H_typedef void CircleList;typede
2016-06-22 14:46:58
223
原创 链表的测试程序
#include #include #include "LinkList.h"struct Value{ LinklistNode header; int v;};int main(int argc , char *argv[]){ LinkList* list = LinkList_Create(); int i = 0;
2016-06-21 18:32:25
309
原创 链表LinkList.c实现
#include "LinkList.h"#include #include typedef struct _tag_LinkList{ LinkListNode header; int length;}TLinkList;LinkList* LinkList_Create(){ TLinkList *sList = (TLinkList*)mall
2016-06-21 18:06:35
554
1
原创 链式存储
#ifndef _LINKLIST_H#define _LINKLIST_Htypedef void LinkList;typedef struct _tag_LinkListNode LinkListNode;struct _tag_LinkListNode { LinkListNode* next;};LinkList* LinkList_Creat();void
2016-06-21 14:08:42
273
原创 链式存储的LinkList.h代码
1. LinkList.h#ifndef _LINKLIST_H#define _LINKLIST_Htypedef void LinkList;typedef struct _tag_LinkListNode LinkListNode;struct _tag_LinkListNode { LinkListNode* next;};LinkList* LinkList_Creat();void L
2016-06-21 14:03:36
2160
转载 qt编译时, make:警告:检测时钟错误。您的创建可能是不完整的。
分析原因可能是:服务器上的文件最后修改时间比当前时钟要晚解决办法:用touch 命令把源程序的时间戳改一下find . -type f -exec touch {} \;
2016-06-14 19:45:31
2765
原创 uboot启动流程
第一阶段: 硬件设备初始化。 加载uboot第二阶段代码到RAM空间。 设置好栈。 跳转到第二阶段代码入口。第二阶段:初始化本阶段使用的硬件设备。检测系统内存映射。将内核从Flash读取到RAM中。为内核设置启动参数。调用内核。第一阶段 :1.设置异常向量表。 2.CPU进入SVC模式。
2016-05-11 22:46:50
373
原创 container_of()宏
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the me
2016-05-06 21:37:41
241
转载 每天遇到的问题
Unable to find the ncurses libraries的解决办法 转载▼我们在更新CentOS或者Ubuntu的内核时,执行make menuconfig可能看如这样的错误:*** Unable to find the ncurses libraries or the*** required header files.*** ‘ma
2016-04-27 16:28:25
324
原创 uboot移植之前的工作
1.1计算机系统的主要部件:计算机系统是有cpu来做核心进行运行的系统。典型的计算机系统有:pc机,嵌入式设备(手机、平板电脑、游戏机),单片机(家用电器)。1.2计算机系统组件部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的主要核心部件都是3个东西:cpu+外部存储器(Flash/硬盘) + 内部存储器(DDR SDRAM/SDRAM/SRAM)。1.3pc机
2016-04-23 18:33:08
5226
原创 遇到的问题 cc1: error: unrecognized command line option "-fconserve-stack"
这个是交叉编译器不兼容的问题。 解决办法:找到适合自己的内核版本的交叉编译器,然后放置到/usr/local/arm 目录下: 然后再 /root/.bashrc 中保存修改的变量路径。 export PATH=$PATH:/usr/local/arm/....
2016-04-21 10:55:30
2090
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人