[国嵌攻略][070][GDB调试程序]】的更多相关文章

GDB是GNU发布的一款功能强大的调试工具.GDB主要完成下面三个方面的功能: 1.启动被调试的程序. 2.让被调试的程序在指定的位置停住. 3.当程序被停住时,可以检测程序状态. GDB使用流程 1.编译生成可调试的程序 gcc –g test.c –o test 2.启动GDB gdb test 3.在main函数处设置断点 break main 4.运行程序 run 5.利用gdb命令对程序进行调试 GDB命令 list(l)   查看程序 break(b) 函数名   在函数入口处添加断…
Core Dump定义 Core Dump又叫核心转存.当程序在运行过程中发生异常,Linux系统可以把程序出错时的内存内容存储在一个core文件中,这个过程叫Core Dump. Core Dump主要用来对付Segment fault错误.Linux应用程序在运行过程中,经常会遇到Segemt fault(段错误)这样的错误.产生这样错误的原因通常有: 数组访问越界 访问空指针 栈溢出 修改只读内存 Core Dump使能 在Linux系统中,默认是关闭core dump功能的,但是可以通过…
[一跃进入C大门] 跳转方式 1.相对跳转:b或bl指令,通过计算两个地址之间的差值来给pc赋值相对跳转 2.绝对跳转:ldr指令,通过给pc直接赋值,完成绝对跳转 代码编写 1.在汇编代码中直接使用绝对跳转,跳转到C代码中,然后在C代码中通过点亮LED来验证 2.210在跳转到C程序时,需要注意复制代码时,要跳过校验信息.要不然跳转到内存时,前16个字节为头信息,整个起始地址向后偏移了16个字节,就找不到正确地址了 [C与汇编混合编程] 为什么需要C与汇编混合编程 1.汇编语言:执行效率高,编…
数据库系统构成 在计算机系统中,保存数据的方式一般有两种: 1.普通文件方式 2.数据库方式 相比于普通文件方式,使用数据库来管理大批量数据具有更高的效率与安全性. 数据库系统一般由三个部分构成 1.数据库 2.数据库管理系统 3.数据库访问应用 sqlite属于数据库管理系统.在数据库中,数据都是以表的形式存在.表与表之间,可能存在关系.sql(结构化查询语言),是一种特殊的编程语言,用于访问数据库中的数据. 移植sqlite到开发板 1.解压 tar zxvf sqlite-autoconf…
未加密传输的安全弊端 如果在网络传输中没有加密,就是以明文传输.传输的数据可以被抓包软件直接截获,并能读取里面的数据. 加密基本原理 1.对称加密 2.非对称加密 2.1.公钥私钥 公钥和私密要配对.公钥加密的数据用私钥来解密,私钥加密的数据用公钥来解密. 2.2.数字证书 当公钥被替换成别的公钥之后,替换前对应的私钥就不能解密了,只能用替换后对应的私钥解密.但是并不能判断公钥是否被替换.所以引入数据证书的概念.数字证书由权威机构发布,所以无法伪造.并且数字证书里面包含公钥和对应所有者信息,所以…
CGI程序(Common Gate Way Interface) 在服务器外部供服务器调用的程序,CGI程序与服务器配合后能让服务器完成更强大的功能. 1.浏览器通过HTML表单或超链接请求指向一个CGI应用程序的URL. 2.服务器收发到请求. 3.服务器执行指定所CGI应用程序. 4.CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容. 5.CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页). 6.网络服务器把结果返回到浏览器中. 移植CGI库 1.解…
1.解压boa嵌入式web服务 tar zxvf boa-0.94.13.tar.gz 2.进入src目录生成配置文件 ./configure 3.修改生成的Makefile CC=arm-linux-gcc CPP=arm-linux-gcc –E 4.修改源文件 4.1. vim util.c +100 time_offset = 0; 4.2. vim bao.c +211 去掉DIE();相关部分 4.编译 make 5.拷贝到根文件系统 cp boa .../rootfs/sbin 6…
V4L2摄像编程模型 1.打开摄像头设备文件 2.获取驱动信息-VIDIOC_QUERYCAP 3.设置图像格式-VIDIOC_S_FMT 4.申请帧缓冲-VIDIOC_REQBUFS 5.获取帧缓冲的地址长度信息-VIDIOC_QUERYBUF 6.使用mmap把内核空间的帧缓冲映射到用户空间 7.帧缓冲入队列-VIDIOC_QBUF 8.开始采集图像-VIDIOC_STREAMON 9.取出帧缓冲(出队)-VIDIOC_DQBUF 10.访问帧缓冲 11.帧缓冲重新入队-VIDIOC_QBU…
查看USB设备的生产商ID和设备ID 示例: lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 生产商ID是1d6b,设备ID是0002 创建USB总线型字符设备 usb_register_dev   //效果同cdev创建字符设备效果相同 创建的主设备号都是180,次设备号可以设置为100 头文件 <linux/usb.h> usb.c /*********************************…
USB驱动模型 1.USB host controller driver(主控器驱动):为USB主控制器提供驱动程序 2.USB core(USB核心):连接USB主控制器驱动和USB设备驱动 3.USB client driver:为USB外部设备提供驱动程序 USB设备模型 device(设备)->config(配置)->interface(接口)->endpoint(端点),构成了USB设备的四个层次.一个usb driver(驱动)对应的是一个interface(接口).一个接口…