自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 【linux】makefile

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、makefile文件的组成内容二、基本规则1.makefile规则的语法形式总结前言makefile是一种脚本编程语言,我们在使用时可以添加变量、控制结构语句和函数等,同时还可以执行shell命令。有了makefile我们就可以自动化编译,极大提升了项目当中编译环节效率。一、makefile文件的组成内容makefile文件主要由以下几个部分组成:1. 显示规则 指明生成目标文件的方法和步骤,包括要生成的

2021-09-12 20:54:31 332

原创 【linux】vi常用快捷键

本文记录vi编辑器的一些快捷操作:vi +行号 文件名:打开文件并将光标移动到第五行的行首eg:$ vi +6 hello.cvi + 文件名:打开文件并将光标移动到最后一行的行首eg:$ vi + hello.cvi +/模式匹配符 文件名:打开文件并将光标移动到第五行的行首编辑模式命令模式末行模式...

2021-09-12 00:02:40 1555

原创 【C++】函数重载

简单分析下函数重载条件,如下定义了一个简单的类,类当中申明了两个private私有成员变量,对象通过setPrivateVal去赋值。如下代码中int setPrivateVal(int val)与int SetPrivateVal(string val)由于给的形参分别为int和string,所以这俩函数虽然同名,但是也可以通过参数不同来选择对应的函数来执行,但是string getPrivateVal()与int getPrivateVal()则编辑报错,原因为编译器无法通过形参来区分实际调用哪个。函

2021-09-11 19:47:14 191

原创 【C++】类的常成员函数

【C++】类的常成员函数#pragma once#include<iostream>using namespace std;class student{public: int mStaticValPublic;private: int mStaticValPrivate = 0;public: student(int StaticValPublic, int StaticValPrivate);public: int getPublicVal(); int

2021-09-11 19:17:34 455

原创 arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别

转http://www.veryarm.com/296.html

2016-01-06 13:22:00 51

原创 Linux 驱动学习笔记05--字符驱动实例,实现一个共享内存设备的驱动

断断续续学驱动,好不容易有空,做了段字符驱动的例子。主要还是跟书上学习在此记录下来,以后说不定能回过头来温故知新。首先上驱动源码 gmem.c:/************************************************************************* > File Name: gmem.c > Author: haili...

2015-12-24 16:36:00 88

原创 Linux C 开发环境配置

换了新电脑,重装了Fedora10,所有开发环境都要重新配置啦,开个随笔记录下过程,说不定以后还要用~首先Fedora10装好之后是不带 VIM 的,果断安装之:打开终端,首先 su 命令切换到root,然后 yum install vim 进行安装(需要联网)。VIM 安装好之后,修改 .vimrc 配置 vim,直接下载我的配置文件到用户目录下即可(如:/home/malth)。好了...

2015-12-23 22:03:00 53

原创 VI的一些快捷键

1、 $ ctags –R --c-types=+px ($ 为Linux系统Shell提示符)2、$ vi –t tag (请把tag替换为您欲查找的变量或函数名)3、:ts (ts 助记字:tags list, “:”开头的命令为VI中命令行模式命令)4、:tp (tp 助记字:tags preview)—此命令不常用,可以不用记5、:tn (tn 助记字:tags ne...

2015-12-18 16:41:00 64

原创 linux 驱动学习笔记05--文件系统与设备文件系统

查看/proc/devices 文件可以获知系统中注册的设备,第 1 列为主设备号,第 2 列为设备名,如:查看/dev 目 录可以获知系统中包含的设备文件,日期的前两列给出了对应设备的主设备号和次设备号:...

2015-12-18 16:38:00 722

原创 指针和数组的那些难分难解问题

int _tmain(){ int x = 20; int ia[10]; int (*pi)[10]; int *a[10]; //a是一个数组,数组中的每个元素都是int * 类型的指针 int **arr[10]; //arr是一个...

2015-09-15 11:59:00 56

原创 linux c学习笔记08--文件操作

1 . 创建int creat(const char *filename, mode_t mode);参数 mode 指定新建文件的存取权限,它同 umask 一起决定文件的最终权限( mode&umask),其中 umask 代表了文件在创建时需要去掉的一些存取权限。 umask 可通过系统调用 umask()来改变:int umask(int newmask);该调用将 umask ...

2015-07-17 14:25:00 45

原创 linux 驱动学习笔记04--简单驱动

首先贴代码helloworld.c和Makefile/************************************************************************* > File Name: helloworld.c > Author: hailin.ma > Mail: mhl2018@126.com ...

2015-07-15 15:30:00 64

原创 linux Makefile obj-m obj-y

目标定义是Kbuild Makefile的主要部分,也是核心部分。主要是定义了要编 译的文件,所有的选项,以及到哪些子目录去执行递归操作。 最简单的Kbuild makefile 只包含一行: 例子: obj-y += foo.o 该例子告诉Kbuild在这目录里,有一个名为foo.o的目标文件。foo.o将从foo.c 或foo.S文件编译得到。 如果foo.o要编译成一模块,那就要用obj-...

2015-07-15 14:31:00 462

原创 linux 驱动学习笔记03--Linux 内核的引导

如图所示为 X86 PC 上从上电/复位到运行 Linux 用户空间初始进程的流程。在进入与 Linux相关代码之间,会经历如下阶段。( 1 ) 当系统上电或复位时, CPU 会将 PC 指针赋值为一个特定的地址 0xFFFF0 并执行该地址处的指令。在 PC 机中,该地址位于 BIOS 中,它保存在主板上的 ROM 或 Flash 中。( 2) BIOS 运行时按照 CMOS 的设置定...

2015-07-14 11:41:00 82

原创 linux 驱动学习笔记02--应用实例:在内核中新增驱动代码目录和子目录

下面来看一个综合实例,假设我们要在内核源代码 drivers 目录下为 ARM 体系结构新增如下用于 test driver 的树型目录:| --test  | -- cpu     | -- cpu.c  | -- test.c  | -- test_client.c  | -- test_ioctl.c  | -- test_proc.c  | -- test_queue.c在...

2015-07-13 16:54:00 60

原创 linux 驱动学习笔记01--Linux 内核的编译

由于用的学习材料是《linux设备驱动开发详解(第二版)》,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式。#make config(基于文本的最为传统的配置界面,不推荐使用)#make menuconfig(基于文本菜单的配置界面)#make xconfig(要求 QT 被安装)#make gconfig(要求 GTK+被安装)在配置 ...

2015-07-13 16:00:00 106

原创 设置PATH变量

一不小心把PATH变量清空了,所有的命令都执行不了了,提示“xxx: command not found”,解决办法:在命令行输入export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin,然后将/etc/profile 恢复原状# /etc/profile# System wi...

2015-06-30 09:58:00 79

原创 Linux C学习笔记07--管道通信

管道通信属于进程间通信的一种方式,使用方便,但是局限是父进程与子进程间的通信,下面是调试好的代码。程序父进程创建2个管道,分别用于父进程写数据--子进程读数据和子进程写数据--父进程读数据:#include <errno.h>#include <fcntl.h>#include <unistd.h>#include <stdio.h>...

2015-06-02 10:05:00 78

原创 Linux C学习笔记06--Tlist使用(编程工具篇)

为了方便用VIM编程,安装了一个方便的小工具 taglist,下面是taglist使用的一些说明。常用的taglist配置选项,可以根据自己的习惯进行配置:Tlist_Ctags_Cmd选项用于指定你的Exuberant ctags程序的位置,如果它没在你PATH变量所定义的路径中,需要使用此选项设置一下; 如果你不想同时显示多个文件中的tag,设置Tlist_Show_One...

2015-06-01 10:24:00 144

原创 linux C学习笔记05--信号量与共享内存(进程同步)

花了半天时间把信号量与共享内存整合到了一起,先来看信号量代码,semaphore.c 当中sem_P()和sem_V()函数分别为信号量等待和信号量释放。两个进程同时访问共享内存,为了避免发生同时读写产生不必要的错误,加入了信号量进行同步。对使用共享内存的区域加上互斥锁,同时只有一个进程能访问共享内存,时其他进程必须等待信号量资源释放后才能继续访问/********************...

2015-05-29 14:31:00 148

原创 linux C学习笔记04--内存映射

内存映射代码,打开一个文件与映射到内存中,对内存和文件的修改都会反映到文件中来,反之亦然,先贴代码,以后再完善:/************************************************************************* > File Name: memory_map.c > Author: hailin.ma &g...

2015-05-29 13:53:00 34

原创 linux C学习笔记03--单链表

单链表一直是程序员的基础,我也来复习下,下面是link.c中的代码,供main.c 调用,代码很简单,单链表的插入,删除,查找和遍历输出,#include <stdio.h>#include <stdlib.h>typedef struct link{ int data; struct link* next;}*LINK;int inse...

2015-05-29 11:02:00 44

原创 linux C学习笔记02--共享内存(进程同步)

system V下3中进程同步:共享内存(shared memory),信号量(semaphore)和消息队列(message queue)调试了下午,终于调通啦! 运行./c.out 输出共享内存中的内容,运行 ./c.out arg1 对共享内存区进行修改,shell下输入ipcs -m 可以查看共享内存情况,-s 是信号量,-q 是消息队列下面先贴上main的代码:#incl...

2015-05-28 17:49:00 61

原创 linux C学习笔记01--makefile

不知不觉毕业五年了,以前学的linux基本都忘了,重新温习起来吧!下面是自己写的makefile文件,供新手和自己回头时查阅CC=gccEXE=c.outCCC=g++EEE=cc.out INC=/home/malth/project/include/LIB=/home/malth/project/lib/#添加文件搜索路经vpath=/home/malth/project...

2015-05-28 17:38:00 46

原创 经典面试题也有忽悠人的时候!!!!

最近看嵌入式面试题关于const的,原文如下:7.关键字const有什么含意?总结:1)只读。2)使用关键字const也许能产生更紧凑的代码。3)使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。我只要一听到被面试者说:"const意味着常数",我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embed...

2014-10-11 13:19:00 41

原创 4层板(AD)转

在系统提供的众多工作层中,有两层电性图层,即信号层与内电层,这两种图层有着完全不同的性质和使用方法。信号层被称为正片层,一般用于纯线路设计,包括外层线路和内层线路,而内电层被称为负片层,即不布线、不放置任何元件的区域完全被铜膜覆盖,而布线或放置元件的地方则是排开了铜膜的。层叠方案方案1此方案为业界现行四层PCB的主选层设置方案,在元件面下有一地平面,关键信号优选布TOP层。TOP ...

2014-04-03 13:58:00 96

原创 linux中断处理的上半部和下半部

设备的中断会打断内核中进程的正常调度和运行,系统对更高吞吐率的追求势必要求中断服务程序尽可能地短小精悍。但是,这个良好的愿望往往与现实并不吻合。在大多数真实的系统中,当中断到来时,要完成的工作往往并不会是短小的,它可能要进行较大量的耗时处理。为了在中断执行时间尽可能短和中断处理需完成大量工作之间找到一个平衡点,Linux将中断处理程序分解为两个半部:顶半部(tophalf)和底...

2014-04-03 13:10:00 62

原创 SDIO

1SDIO的定义(Secure Digital Input and Output Card) 安全数字输入输出卡 SDIO在SD标准上定义了一种外设接口。目前,SDIO主要有两类应用——可移动和不可移动。可移动设备作为Palm和Windows Mobile的扩展设备,用来增加蓝牙、照相机、GPS和802.11b功能。不可移动设备遵循相同的电气标准,但不要求符合物理标准。某些手机内包含通过SDI...

2014-04-03 13:05:00 68

原创 malloc和new的区别是什么?

1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于m...

2014-04-03 12:58:00 48

原创 数据库优化

1.数据文件和事务日志文件存放a.数据文件和日志文件放在不同的磁盘,读取时不用共享磁盘读取带宽,提高读写效率。b.同理,主数据文件和辅助数据文件也应放在不同的磁盘,失误日志文件亦然。2.使用文件组3.RAID磁盘阵列...

2013-04-25 13:04:00 36

原创 数据库的创建和修改

--创建数据库create database 创建数据库on PRIMARY --创建主数据文件(name=创建数据库_data,filename='E:\DB_Store\创建数据库.mdf',size=10MB,maxsize=15MB,filegrowth=1MB),( --创建辅助数据文件name=创建数据库_data1...

2013-04-25 13:00:00 78

原创 数据库快照

--创建数据库快照 create database SchoolManagement_SnapShot_0425 on ( NAME=SchoolManagement, filename='E:\SchoolManagement_SnapShot_0425.mdf' ) AS snapshot of SchoolManagement--用快照恢复数据库 restore da...

2013-04-25 09:14:00 38

原创 .NET Format String 101

"I see stuff like {0,-8:G2} passed in as a format string. What exactly does that do?" -- Very Confused String FormatterThe above format can be translated into this:"{<argument index>[,<...

2013-04-23 13:52:00 61

原创 C# 引用C++动态库方法

标准形式:[DllImport("KSJApi.dll")] public static extern int KSJ_PreviewSetPos( int nChannel, IntPtr hWnd, int x, int y, int nWidth, int nHeight );例子:using System;using System.Runtime.Inter...

2013-04-23 11:04:00 133

原创 WPF 下TextBox 换行与 C#下TextBox换行

有时候在WPF中要设置TEXTBOX自动换行 1、到文本框边缘后会自动换行 TextWrapping=Wrap 2、设置按Enter 健换行 AcceptsReturn=True 在C#下属性与WPF不同,所以要写个函数来控制自动换行 private void textBox2_TextChanged( object sender,TextChangedEventArgse) { int int...

2013-04-17 17:00:00 459

原创 为Button 添加图片---WPF

在WPF中,让button显示为一个Image,可以设置其BackGround为Image或者Content为Image,不过这两种方法都有一些问题~~ 1、可以把Button的content设置为一个Image,不过图片的周围有个边框,影响美观~ <Button> <Image Source="" /> </Button> 2、通过设置Backgr...

2013-04-17 11:26:00 207

空空如也

空空如也

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

TA关注的人

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