自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (5)
  • 收藏
  • 关注

原创 openharmony学习

最近工作需要在学习openharmony系统,记录一下学习总结的过程,为自己后续巩固也为网上需要的同学不过为了不重复记录,这里只发一下连接,后续会在简书中分享openharmony学习 - 文集 - 简书https://www.jianshu.com/nb/51380882...

2021-10-24 11:23:00 1291

原创 gn+ninja代替MDK编译工程

说明这里是为了学习gn+ninja而从网上找了一些比较好的文章,并且通过实践一步步将demo做了出来,首先要感谢这篇文章,这个demo就是基于这篇文章来编写的,里面的原理这里不再重复,只是记录一下在开发过程中遇到的几个问题,后面会把我的源码放在附件中另外,linux下简单的helloword工程源码,可以参考我的另外一篇文章遇到的问题及解决1. windowns版本的gn+ninja下载gn+ninja编译工具是google开发的,gn的源码在googlesources上,在国内很多人无

2021-10-14 22:35:02 483

原创 Go语言学习3----Go语言特色

Go语言号称集多数编程语言的优势于一身,具有较高的生产效率、先进的依赖管理和类型系统,以及原生的并发计算支持。在这里罗列一些Go语言特有的一些特性(有人可能喜欢有人可能反对,仁者见仁吧),可能不全,后面想到再补充代码风格强制统一。C/C++/JAVA程序应该都会遇到过这样的代码风格问题,一个函数的左大括号是与函数定义放在同一行,还是另启一行?在Go语言中没有这样的烦恼,因为Go语言

2016-12-20 00:28:42 1087

原创 Go语言学习2----代码组织之包

上一篇文件中已经学习到go语言的工程结构,都是放在GOPATH下的src目录下,大部分高级编程语言都有包的概念像java、python等,即使没有包的概念源码也会以不同的目录来组织以方便大型软件源码的管理,像c/c++等。go语言也是有包的概念的,个人感觉与java的包比较类似。所谓的包就是源代码所在的相对路径源码文件包只是组织源码文件的形式,所以首先要熟悉源码文件。Go语言的源码

2016-12-18 22:35:35 2189

原创 Go语言学习1----开发环境搭建

Go语言是由google公司开发,其历史不再赘述,在随着云化、微服务化、容器化发展过程中,特别是容器化docker让Go语言越来越火。趁着业余时间也给自己充充电,学习一下Go语言编程。这里可能会用到一些网络信息以及Go指导书的信息,会在文章后面增加引用说明。费话不多说,下来记录Go语言学习的第一个内容----开发环境搭建资源Go语言官方网站是http://golang.org,里面

2016-12-14 00:19:59 1056

原创 maven学习系列8----将resources目录下的文件打包到jar包外

maven默认情况下会把src/main/resources下的文件和class文件一起打到jar包内部,但是有很多场景下都需要把resources下的文件打包到jar包外面,这样修改resources目录下的文件就不需要重新打jar假设目录结构如下,resources目录下有三个文件默认打好的jar包如下,即resources下的文件打到了jar包里面如果想r

2016-11-09 23:44:36 33371 3

原创 maven学习系列7----将依赖依赖文件打包到jar中

在发布项目的时候有可能会有这样的要求,一个jar包中即包含自研的代码,也包含依赖的库(例如log4j的jar包之后的),maven打包的时候有两种方法可以实现这种要求。1,使用maven-assembly-plugin插件pom.xml配置如下 maven-compiler-plugin 1.7

2016-05-15 22:47:57 17275 6

原创 maven学习系列6----聚合与继承

聚合前面也讲过聚合的作用就是把多个模块(maven工程)放在一个模块内部,这个模块就可以说成是一个聚合,单独构建聚合模块就会把聚合在一起的其他模块一起构建(也可以配置只编译其中一部分模块)。聚合模块的packageing必须是POM,聚合模块与被聚合的模块之间的关系如下图。对于聚合模块来说,它知道有哪些被聚合的模块,但是被聚合的模块不知道这个聚合模块的存在。假设聚合模块

2016-05-02 17:48:59 2908

原创 maven学习系列5----插件

生命周期maven包含三套生命周期,每套生命周期中包含多个阶段,每套生命周期内的阶段有前后依赖关系,但是不同生命周期的阶段之间是相互独立的:clean:清理项目(主要是删除target目录下的内容)default:构建项目,包含编译、测试、安装(把编译出来的构建拷贝到本地仓库)、部署(拷贝到远程仓库)等几个主要阶段(详细参见附1default生命周期)site:建立和发布项目站点,

2016-05-02 13:35:52 2387

原创 maven学习系列4----依赖

依赖配置前面几篇文章中都有提到依赖构建的配置,但是没有详细说明,并且只给出了最基本的配置,还有一些常用的配置项没有体现,这里面将详细说明依赖配置各选项的意义及配置方法,如下:      junit  junit  4.12          test

2016-04-30 20:04:10 1000

原创 maven学习系列3----仓库

上一篇文章中简单说明了仓库的作用以及分类,这里详细说明一下相互之间的区别,以及常用的配置方法等中央仓库maven提供了两个远程仓库以方便使用maven工具的开发人员使用,就像java的Object类一样,用户无需显示配置就可以默认使用maven提供的远程仓库id:centralurl:http://repo1.maven.org/maven2/  (或者使用http://repo.

2016-04-30 15:04:25 1237

原创 maven学习系列2----maven简单配置

maven几个概念1,POM(Project Object Model,项目对象模型),描述项目如何构建、声明项目依赖等。以xml形式来编写命名为pom.xml,一个maven项目对应一个pom.xml。相当于Ant的build.xml文件,gradle的build.gradle文件。2,构件,使用maven工具可以将项目编译成很多种类型的包,常用的是jar/war/pom类型的包,这些包

2016-04-28 01:00:53 2552

原创 maven学习系列1----maven安装

maven在windows上的安装,以及在eclipse中的配置

2016-04-24 22:56:57 865

原创 linux设备驱动学习笔记--内核调试方法之proc(补充seq_file)

上一节中的proc实现对于开关文件,控制文件,以及显示很少信息的文件来说还是比较简单的,但是对于需要输出大量信息像meminfo,或者结构化的信息像cpuinfo等时就会显得很笨拙,并且代码也很不好理解与维护。内核为了简化这种proc文件的实现提供了另外一种方案----seq_file接口。set_file 接口假定你在创建一个虚拟文件, 它涉及一系列的必须返回给用户空间的项. 为使用 seq

2015-02-01 23:11:06 5766

原创 linux设备驱动学习笔记--内核调试方法之proc

/proc 文件系统是 GNU/Linux 特有的。它是一个虚拟的文件系统,因此在该目录中的所有文件都不会消耗磁盘空间。通过它能够非常简便地了解系统信息,尤其是其中的大部分文件是人类可阅读的(不过还是需要一些帮助)。许多程序实际上只是从 /proc 的文件中收集信息,然后按照它们自己的格式组织后显示出来。有一些显示进程信息的程序(top、ps 等)就是这么作的。/proc 还是了解您系统硬件的

2015-02-01 22:04:59 6614

原创 linux设备驱动学习笔记--内核调试方法之printk

1,printk类似于用户态的printf函数,但是比printf函数多了一个日志级别,内核中最常见的日志输出都是通过调用printk来实现的,其打印级别有8种可能的记录字串, 在头文件 里定义:KERN_EMERG 0用于紧急消息, 常常是那些崩溃前的消息.KERN_ALERT 1需要立刻动作的情形.KERN_CRIT 2严重情况, 常常与严重的硬件或者软件失效有关.KERN_

2015-01-27 23:43:42 6638

原创 linux设备驱动程序学习笔记--第一个有用的驱动

在上一章中通过一个helloworld把我们带入了linux内核驱动的世界,但是只是为了简单说明编写内核驱动的方法,helloworld驱动没有任何功能,而本章则是在helloworld的基础上增加一些“有用的”功能,(为了保持与书中例子一致,helloworld改名为scull,为了便于理解,scull只实现了一个设备,并且内存只有一块。)首先要让内核“认识”到有一个hellowor

2015-01-22 00:09:18 1598

原创 linux设备驱动程序学习笔记--helloworld

linux内核是以模块化的方式实现的,例如磁盘驱动,光盘驱动,键盘驱动等等,这些都是一个个的模块可以加载也可以动态的卸载。这样非常有利于驱动的开发调试,也可以保持内核的最小化运行(只加载需要运行的驱动或者模块)。本系列文章就通过《linux设备驱动程序》一书学习一下内核模块的编写,编译,运行等知识,对文中主要内容记录以便后面理解使用。在这里统一使用“驱动”来表示内核模块。首先从应用层来讲一

2015-01-14 00:38:41 1667

原创 linux第一个用户进程init--systemd

本文是对文章《浅析 Linux 初始化 init 系统,第 3 部分: Systemd》的总结以及网上对systemd的评论,做为学习systemd的第一步,只介绍systemd实现的原理及使用的技术。systemd的目标:1,启动更少的程序,程序在使用的时候再启动(很像内核的写时拷贝)2,在必须启动的程序中,做到最大的并行化从实现目标来看upstart与systemd是一样的,所

2015-01-05 00:18:11 4117

原创 linux第一个用户进程init--upstart

大家在使用ubuntu时,会发现系统中没有文件 /etc/inittab,而这个文件 对于通过sysvinit来启动的系统是非常重要的文件,如果不存在可能会导致系统启动不起来,从这一点来看ubuntu应该是通过另外一种方式启动的系统了,这就是本文所要介绍的主题upstart。upstart是一种基于事件通知机制启动相应服务的init进程。主要是为了解决sysvinit机制不能并行启动服务的问题

2015-01-02 01:10:22 2388

原创 linux第一个用户进程init--sysvinit

在《linux系统启动》一文中介绍了计算机从按开机键到系统启动的流程,在流程启动的最后一步就是启动系统的第一个用户态进程init进程,其进程ID永为1(其实还有一个id为0的进程swap,即有名的idle进程,当cpu没有进程可以运行时就会自动运行此进程,严格意义上来讲此进程才是内核创建的第一个进程)。本文介绍一下init进程启动之后以及操作系统运行过程中都做了什么操作,以及担当什么样的角色。

2014-12-28 01:20:25 6071

原创 linux系统启动

本文简单介绍一下从我们按开机

2014-11-18 23:53:31 1340

原创 VFS:Cannot open root device "sda"

根据《手把手教你构建自己的linux系统》一书

2014-09-08 01:17:20 4682

原创 KMP算法之部分匹配值计算

KMP算法我在网上搜了很多说明,但论简洁易懂还属阮一峰的那篇文章,强烈推荐大家看看个人觉得唯一不足之处在于《部分匹配值》的计算方法描述有些不清楚,在此按自己的理解更详细的详解一下取阮总文章中的例子进行说明,搜索词及《部分匹配值》如下图如示:一开始我一直以为单个字符进行计算,后来经过查询资料发现我错了,每个字符下面记录的部分匹配值不是这单个字符的值,而是从

2014-03-19 00:54:22 8381 6

原创 sed高级用法:模式空间(pattern space)和保持空间(hold space)

环境:centos 6.4 sed版本:sed-4.2.1-10.el6.x86_64前面的基本用法已经可以满足90%的需要,人个认为想要真正掌握sed,还需要学习一下sed的高级用法,本节就详细讲解一下sed的模式空间和保持空间前面基本用法中也有提到模式空间,即为处理文件中一行内容的一个临时缓冲区。处理完一行之后就会把模式空间中的内容打印到标准输出,然后自动清空缓存。

2014-03-13 00:54:09 18541 5

原创 sed基本用法二:常用命令

不同的sed版本的命令实现有可能有微改动,但是用法基本不变,这里的事例都是在以下环境中实验:环境:centos 6.4 sed版本:sed-4.2.1-10.el6.x86_64sed命令语法格式:[address] commandaddress在“sed基本用法一”中已经讲过,这里不再赘述还有一种写法,因为在脚本程序中不常用,所以在这里只是了解一下即可ad

2014-03-09 05:12:17 2452

原创 sed基本用法一:概念介绍

环境:centos 6.4sed版本:sed-4.2.1-10.el6.x86_64【简介】sed是一个面向字符流的“非交互式”编辑器,vi编译中手工对文本的操作动作大部分都可以通过sed命令来完成,这样就方便在linux下编译程序批量自动处理文件,例如分析日志文件,修改配置文件等等。命令格式如下:sed [options] script filename其中opt

2014-03-08 17:29:15 6290

转载 jsp页面中的EL表达式不被解析的问题

jsp页面中的EL表达式不被解析的问题Shane WEB应用 0Comments发表评论在使用jsp的el表达式时,发现tomcat 5对其不解析。按原样输出如${items}.原样把tomcat 的jsp例子拷过来还是如此。web.xml里和lib里的配置都配好了。找了很久才发现web.xml文件使用的是servlet 2.3版本的声明的问题。el在servlet

2013-06-16 22:58:03 880

原创 linux系统忘root密码怎么办?

linux系统忘root密码怎么办?这个问题其实很常见的,有的客户要求安全性就把root密码改的很安全,并且开了一些普通帐户使用,很少使用root帐户,但是时间一长root密码就很容易忘记这里有一个方法,可以不用输入密码直接登录系统,然后修改一下root密码即可解决先说一下原理:linux系统默认启动的第一个用户态进程是/sbin/init(也即进程号1的进

2013-06-15 13:05:27 1526

原创 linux系统登录不了?单用户试试

有时候系统进不去,或者磁盘有问题,可以试试单用户进去查看一下是什么问题说一下图形界面进入单用户的方法(这里用suse 11 sp1,其他系统都差不多,主要是修改grub选项)(runlevel=5)(字符界面和图形界面基本一样,可能会用到grub命令,help查一下即可)1,重启系统到下面的grub启动界面,按上下键(即不让系统自动启动)2,先中要启

2013-06-15 12:48:23 1195

原创 gdb查看脚本挂在哪一行了

运行过程中脚本挂住一直不退出,并且从日志中也看不出来脚本运行到哪儿了,这时可以用gdb来进行查看,方法如下:1. gdb attach 2. (gdb) p line_number就会输出脚本挂在了哪一行,然后分析脚本相应行即可

2013-03-27 19:54:59 3025

转载 【转载】深入了解scanf()/getchar()和gets()等函数。

come from http://hi.baidu.com/xxwpk007/blog/item/c9607824eda58e2ed507425c.html作者:lewsn2008----------------------------------------------------| 问题描述一:(分析scanf()和getchar()读取字符)   |

2012-10-21 13:30:33 409

转载 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

2011-12-05 22:17:31 627

转载 正则表达式全部符号解释

正则表达式全部符号解释字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "(

2011-09-17 14:41:17 780

转载 菜鸟编译Linux内核

菜鸟编译Linux内核                      双眼皮的猪            菜鸟俺,最近研究了一下Linux内核的编译,有些许心得,望同大家分享一下,故有此文…我们这里要谈的不涉及到源码,只是一些内核编译的步骤及相关知识…因为本人是菜鸟。所以,也就

2011-08-10 23:46:37 969

原创 linux 不启动图形界面

找到/etc/inittab这个文件,然后打开,找到这么一行: id:5:initdefault. 把5改成3保存,重新启动

2011-07-25 00:25:04 1758

转载 tomcat输出信息重定向

<br />重定向控制台输出(四)重定向tomcat的控制台输出文章分类:Java编程startup.bat倒数第二行改成:  <br />   <br />  call   "%EXECUTABLE%"   run   %CMD_LINE_ARGS%  <br />   <br />   <br />  catalina.bat最后一段的相应的一句改成(这里改的是   :doneSetArgs这一段的):  <br />   <br />  %_EXECJAVA%   %JAVA_OPTS%   %CAT

2010-12-04 19:32:00 2257

转载 Java中查找某个表是否在数据库已经存在

<br />采用的是: (1) DatabaseMetaData meta = conn.getMetaData();(2) ResultSet set ;//= meta.getTables(null, null, table, null);set = meta.getTables(null, null, table.toUpperCase(), null);<br />这个很奇怪,有些数据库是忽略大小写,而有些不是,有些默认是直接使用大写的,那么如果使用小写的table,就会查找不到。一般来说都是存储为

2010-12-02 10:40:00 1852 1

转载 Table not found in statement [select sequence_name from system_sequences]

hibernate管理HSQL的一些问题

2010-11-19 11:22:00 4125

原创 org.eclipse.draw2d.graph.GraphVisitor

当有人想继承org.eclipse.draw2d.graph中的GraphVisitor类时,却惊奇的发现import不进来,而且jar包里确实有这个包,这个时候不妨看看它的源代码吧, <br />/******************************************************************************* * Copyright (c) 2003, 2005 IBM Corporation and others. * All rights rese

2010-11-15 10:28:00 2315

stm32f103zet6_gcc_跑马灯.rar

MDK上使用arm gcc工具链编译工程的demo代码,开发板为正点原子战舰板

2021-10-31

ninja_test.rar

基于正点原子战舰STM32开发板(stm32f103zet6)跑马灯实验,使用gn+ninja来代替MDK编译的例子

2021-10-14

gdb功能简介

gdb功能汇总,帮助想了解怎么用gdb进行调试的入门人员

2012-10-21

Addison.Wesley.Eclipse.Modeling.Framework.chm

关于EMF框架的资料,不仅描述了它的广泛的用途,而且用事例来说明EMF的开发

2009-12-26

JBoss-A.Developer's.Notebook.rar

一本关于JBoss服务器的书籍,特别适合JBoss的初级用户

2009-12-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除