- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 centos源码安装
按照其余博客说明,到了最后一步rpmbuild,报错: Building for target x86_64 error:Failed build dependencies: bison is needed by kernel-3.10.0-327.el7.centos.x86_64 解决办法: yum instll bison 再rpmbuild就没问题了。 ...
2020-12-11 10:08:46
255
原创 工作中的一些总结
1.使用自动内存分配的时候,请认真面对,因为一不注意就内存泄露了! 如下代码:func(int a,int b) { ptr = new int(10); if(a > 5) return -1; else { ptr = new int(10); . . . } delet
2015-09-01 23:37:00
292
原创 再读《C和指针》(笔记4)
1.移位操作 标准说明无符号值执行的所有移位操作都是逻辑移位,但对于有符号值,到底采用逻辑移位还是算是移位操作取决于编译器,可以编写一个测试程序测试。 2.位操作符 AND(与),OR(或),XOR(异或)。 例一:把指定的位设为1: value = value | 1 << bit_number; 例二:把指定位清零: value = value & (1 << bi
2015-08-19 21:38:37
389
原创 再读《C和指针》(笔记3)
一.数据: 整形包括:字符型,短整型,整型,长整型,它们都分为有符号和无符号两种。 长整型并不一定比短整型大,因为下面这个规定: 长整型至少应该和整型一样长,而整型至少应该和短整型一样长,因为这个规定,可能就会有奇异的机器上这三个类型一样长。 尽管char是为了容纳字符型值的,但字符在本质上是一个小整型值。2.指针: 变量的值存储于计算机的内存中,每个变量都占据一个特定的位置,每个内存位置都
2015-08-18 20:17:49
336
原创 再读《C和指针》(笔记2)
用于编译和链接C程序的特定命令在不同的系统中是各不相同的。在绝大多数UNIX系统中,C编译器被称为cc,它可以用多种不同的方法来调用。 一:编译和链接 1.编译并链接一个完全包含于一个源文件的c程序:cc program.c这条命令会产生一个a.out的可执行文件。中间会产生一个名为program.o的目标文件,但它在链接过程完成后会被删除。 2.编译并链接几个C源文件:cc main.c s
2015-08-17 13:34:05
367
原创 再读《C和指针》(笔记)
在C中不存在“string”数据类型,但存在一个约定:字符串就是一串以NUL字节结尾的字符。NUL虽然作为字符串的终止符,但它却不会被看做字符串的一部分。 NUL是ASCII字符集的‘\0’字符的名字,它的字节模式是全0。 NULL指向一个其值为0的指针。NULL和NUL都是整形,值也相同,所以他们互相可以换着使用。但还是应该使用正确的常量,因为它能告诉阅读程序的人,你想使用的不仅是0这个值,
2015-08-16 21:45:46
488
原创 嵌入式web的一些理解(实习笔记)
以前没有学过web开发的知识,最近在公司实习做了很多这方面的开发,也是摸着石头过河,学一点就记一点。梳理一下最近做的一些工作的心得体会。首先是html的开发,这个要配合css才能做好。 其次是写js的脚本,这一块要涉及到数据传递的处理了。这里记一下数据在js脚本和html以及XML文件中的传递过程。 以通常在页面上点击“提交”之类的按钮为例。 在html代码里会有一个onclick指向这个按钮
2015-08-15 14:28:58
742
原创 C++类的成员函数地址(实习笔记)
C++类的成员函数地址(实习笔记)这次的任务是重构代码,以前的代码由于时间的关系结构很粗糙,全是if结构,冗余的地方太多,而且对于后期的维护也是一个很大的问题。所以需要一个好一点的设计。我的方法是采用函数指针数组的方式来解决if冗余的问题。正确使用函数指针数组的前提条件是这些函数的结构是类似的,也就是有相同类型的输入输出。这也恰好符合这次的问题。所以只需要把所有要调用的函数指针存入这个函数指针数组,
2015-08-14 13:22:31
560
原创 C++单例模式(实习笔记)
单例模式的作用是保证一个类仅有一个实例,并且提供一个访问它的全局访问点,这个实例被所有程序模块共享。 实例的实现方法是:定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法获取该类。 代码片段如下: Class at_file_service { public: at_file_service(); virtual ~at_
2015-08-13 14:02:26
329
原创 队列笔记
队列的用途: 先来先服务的原则: 订票系统,操作系统的作业调度,消息队列。 顺序队列 结构体中的数组用来存储入队的元素。 typedef struct { DATATYPE items[QUEUESIZE]; int front,rear; }SqQueue; 顺序队列的溢出问题。 1:队列满时还要进行入队操作,rear会超出数组的下标。上溢。 2:队列空时还要出队
2015-08-09 20:43:34
662
原创 终端控制台笔记
控制台: 1:控制台是一个虚拟的终端。它必须映射到真正的终端上。 2:控制台可以简单的理解为printk输出的地方。 3:控制台是一个只可以输出的设备。功能很简单,只能在内核中访问。 伪终端: 通常用来做远程的通信。 TTY体系: 由tty_core tty_line_discipline(tty线路规程) tty_driver构成。 tty_core承上启下。从u
2015-06-09 10:57:51
371
原创 链表与二级指针的笔记
链表的初始化: 1: 11 int InitList(Node **head) 12 { 13 *head = (Node *)malloc(sizeof(Node)); 14 if(head == NULL) 15 { 16 printf("INIT ERROR!\n"); 17 return 0; 18
2015-06-09 10:55:54
499
原创 变量覆盖的问题
直接上例子: int state = 0; int main() { int state = 1; return 0; } 在main函数里,局部变量state会覆盖全局变量state。
2015-04-29 16:07:11
544
原创 字符设备控制技术
1:大部分驱动程序除了需要提供读写设备的能力,还应具备控制设备的能力。 2:在用户空间,使用ioctl系统调用来控制设备。 函数原型: int ioctl(int fd,unsigned long cmd,...) fd: 要控制的设备文件描述符 cmd: 发送给设备的控制命令 …: 第3个参数是可选的参数,存在与否是依赖于控 制命令(第 2 个参数 3:当应用程序使用ioctl
2015-04-13 21:39:27
328
原创 硬件访问技术
1:硬件访问实质: 驱动程序控制设备,是通过访问设备内的寄存器来达到控制目的。所以问题就是 如何访问这些寄存器。 2:地址映射 在linux中,无论是内核程序还是应用程序,使用的地址都是是虚拟地址,所以应 该首先将物理地址映射成虚拟地址。 2.1:动态映射(这个方式使用的最多) 指的是在驱动程序中采用ioremap函数将物理地址映射成虚拟地址。 原型:void * ioremap(
2015-04-13 21:38:36
666
原创 字符设备知识 笔记
1:在linux系统中,驱动程序通常采用内核模块的结构来编码。因此编译、安装一个驱动程序实际上就是编译、安装一个内核模块。 2:通过字符设备文件,应用程序可以使用相应的字符设备驱动程序来控制设备。创建字符设备文件的方法一般有两种: 1:使用mknod命令 mknod /dev/文件名 c 主设备号 次设备号 c:代表是字符设备文件,char的缩写 主设备号:字符设备文件和设备驱动
2015-04-13 21:35:24
336
原创 挂载NFS的内核配置
1:内核配置 make menuconfig ARCH=arm 去掉initramfs挂载方式选项(Initial RAM filesystem and RAM disk support) 再进入file system 选择Network File System,确保Root file system on NFS选项是被选中的 再选中NFS server support 再选
2015-04-13 15:41:02
800
原创 TFTP 配置 笔记
1:安装tftp服务器 2:配置tftp服务器 vim /etc/xinetd.d/tftp service tftp { socket_type = dgram wait = yes disable = no //这一行要从yes改为no user = root protocol = udp server = /usr/sbin/in.tftpd
2015-04-12 21:40:08
374
原创 NFS服务器配置 笔记
1 配置NFS服务器 vim /etc/exports 添加: /tmp 192.168.1.*(rw,sync,no_root_squash) 命令项详解: 对在192.168.1网段的机子允许访问/tmp共享目录。同理如果命令是/tmp *(rw,sync,no_root_squash) 则表示对网络上所有用户开放/tmp。 权限设置rw,sync,no_root_squash:
2015-04-12 16:03:47
479
原创 stm32 PWM笔记
配置顺序: 一:定时器基本参数配置 1:计数周期arr(自动重装载值) 2:预分频值psc 3:计数方向,一般设置为向上计数。 4:时钟分割参数设置。 二:PWM模式配置 1:设置模式为PWM模式2 2::比较输出使能 3:输出极性选择 4:设置CCRx来设定PWM波的占空比。 这个原理是:arr的值假设为1000,CCR1的值假设为500,占空比就是50%。 5:初始化通
2015-04-08 16:19:53
1234
原创 使用iic时的一点笔记
1:start信号和stop信号之间的间隔时间要足够,不然会导致出错。 2:在连续写模式时,主机每写一个字节就应该向从机发送一个ACK信号 3:在连续读模式时,主机也应该每读一个字节就接收一个从机发送过来的ACK信号。
2015-04-07 21:16:08
520
转载 VMware 网络连接设置 ping ARM开发板
要组网,就需要使用网卡、交换机等组网设备,在VMware Workstation中组网也需要使用这些设备,只不过在VMware 虚拟的计算机和网络中,这些设备在形式上也都是虚拟的。 ⒈交换机。和一台物理交换机一样,一台虚拟交换机能把主机、虚拟计算机和其它网络设备连接在一起。在VMware Workstation安装后,交换机将根据组网的需要由VMware Workstation自动创建并自动使用
2015-03-29 22:46:12
1228
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人