自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

他山随悟的专栏

善思善学,以练萃学

  • 博客(20)
  • 资源 (3)
  • 收藏
  • 关注

原创 打造嵌入式c调试系统2--状态信息实现

本文介绍用户态状态信息的设计方法,用户态不像驱动,驱动加状态信息,可以用proc系统,可以用debugfs,反正就是现成的,用户态目前没有统一的解决方案,要自己设计,本文介绍了一些常用的设计思路,以供参考。状态信息什么是状态信息,直接看两个例子:典型的状态系统是linux的proc(proc是内核态的,本文主要讲的是用户态应用状态信息设计,举这个例子只是外在表现的借鉴),如下:~ # c...

2018-10-17 15:02:45 299

原创 打造嵌入式c调试系统1-什么是调试系统

本系列文章针对嵌入式环境下c语言应用而言的,对其他系统、语言的程序有一定的参考意义,毕竟调试思想应该是相通的。什么是调试系统调试(debug)没有标准的定义,个人的理解是,调试是一种能够快速定位乃至能预防问题发生的技术手段。调试针对的是已发生问题的定位,这一点问题不大,对于预防问题发生有些人可能不赞同,其实,程序能够正常运行,不代表程序没有问题(没有完美的软件),就像人,看起来活蹦乱跳的,但不...

2018-10-17 14:55:32 738

原创 fuse接口用法说明

fuse接口用法说明fuse介绍fuse即Filesystem in Userspace,用户空间文件系统,可以在应用程序中实现文件系统,能够在用户态使用标准的文件操作,如cat、ls、grep、重定向等功能,虽然效率比内核态要低,但胜在方便。很多场景下用起来还是非常方便的。fuse本身是内核提供的一个功能,内核开启fuse支持后,会在/dev目录下,生成fuse设备节点,应用层可以通过该设...

2018-09-29 19:00:12 19864 3

翻译 Libata错误信息解析

Libata错误信息解析原文(Libata error messages)来源: https://ata.wiki.kernel.org/index.php/Libata_error_messages概述内核产生所有的libata错误信息都使用以下标准格式: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 f...

2018-07-17 14:27:20 13535 1

原创 vscode调试嵌入式c程序

最近读一份只能运行在嵌入式平台上的三无代码,由于数据结构比较复杂,没办法只能gdb一步步跟着读,gdb一边list、一边print还得一边next,效率很低下。在ubuntu上用过vscode之后,就觉得用vscode调嵌入式c程序应该不错,花了一些时间尝试了一下,果真不是很复杂。原理上主要使用了gdb的远程调试,远程gdb调试时,使用了gdb的mi(machine interface)接口,...

2018-07-02 14:28:05 10060 1

原创 bfd库源码分析

阅读BFD库可以从简单的接口入手,如上章介绍的nm命令使用的几个接口就是很好的分析对象(https://blog.csdn.net/t3swing/article/details/79671461),通过这几个接口,对bfd源码和流程有初步了解,可以为深入分析bfd源码打下基础。可以使用gdb进行辅助分析,使用gdb辅助阅读代码,有利于提升阅读效率。下面记录一下本人阅读bfd源码流程。BFD库依赖说

2018-05-05 17:54:17 2867

原创 bfd库使用-nm源码分析

bfd介绍想深入了解elf等可执行文件的原理(包括结构、运行等细节),用bfd库作切入点是比较好的选择。BFD是Binary format descriptor的缩写, 即二进制文件格式描述,是很多可执行文件相关二进制工具(如nm、objdump、ar、as等命令)的基础库。bfd库可以用来分析、创建、修改二进制文件,支持多种平台(如x86、arm等)及多种二进制格式(如elf、core、so等)。

2018-03-23 18:59:26 5915

原创 elf文件结构分析

elf简介ELF(Excutable and Linking Format)是可执行与链接格式的缩写,是linux下最重要的一种可执行文件格式。如想深入了解linux下的程序运行原理,对elf文件组织格式的了解是必不可少的。 网上有很多elf结构分析相关的文章,这里推荐一个pdf《ELF文件格式分析.pdf》,细节讲的比较系统,大家可以参考,可以到https://download.csdn....

2018-03-23 14:48:53 4576

原创 阅读多平台开源c代码小技巧

阅读多平台开源c代码小技巧linux开源软件特别的较大的程序,一般会进行多平台支持,对使用者来说确实方便了不少,但也增加了阅读难度,增大了学习难度,为了兼容多个平台,代码中少不了一堆的宏及平台相关的特性实现,阅读代码跳转函数时,需小心的甄别平台,甚至需进行调试才能确定执行流程。本文介绍了一种方法,通过Makefile依赖原理,删除与我们关注的平台无关的代码,同时不影响编译调试,提高阅读代码...

2018-03-06 11:33:26 785 1

原创 openGL之glsl入门7下--添加鱼眼及全景球面纹理

接着上一篇讲,前面已经展示了纹理把图片贴到立方体上,立方体表面是平面的,纹理坐标不需要设计,下面的两个例子都是基于球面贴图的,把鱼眼和全景图片贴到球面上,即实现曲面贴图。实际上,曲面贴图和平面贴图使用的纹理方面的知识没变化,主要难点在于纹理坐标设计,纹理坐标设计涉及到变换模型设计,需要一定的数学基础,下面例子中的两种贴图方法是比较简单的,网上的资料也非常多,学习本章例子的话,最好能推导例子中用的公

2018-01-08 19:09:15 7381 19

原创 openGL之glsl入门7上--添加鱼眼及全景球面纹理

理解纹理可以先看一下第四章的例子,第四章例子使用片元着色器直接显示图片(1080p图片),做法是先确定矩形的顶点坐标,矩形包含1920*1080个顶点,每个顶点与一个像素对应,这种方法虽然能显示出图片,但缺点非常明显,效率低、绘制麻烦、缩放效果差等。    理论上来说所有的模型都可以使用顶点+顶点颜色的方式绘制出来,这样的话,制作模型就太麻烦,纹理正是为了解决该问题而出现的,使用纹理,较少的工

2017-12-06 19:47:34 7019 13

原创 openGL之glsl入门6--画三维图魔方、圆柱体

这一章介绍坐标变换与矩阵相关内容,对应红宝书第5章内容,并通过两个简单的例子展示矩阵变换的效果。1. 坐标变换    变换的类型有多种,包括视图、模型、投影、视口变换等,概念可以参照红宝书5.1章节,概念虽不同,但最终作用到顶点坐标的方式是一致的,都是对顶点坐标进行运算(直接加减乘除或者使用矩阵运算),弄清楚这些概念,有利于清晰描述变换的效果,虽然不同的变化都可以得到相同的结果(显示器上输

2017-11-21 19:45:40 18410 2

原创 openGL之glsl入门5--缓冲对象vbo、vao及ebo

大家可以看到,前面几个章节的例子都是平面的,顶点着色器顶点数据只用了x,y分量,z分量完全没用,之所以没用立体的例子,绘制立体图形,需配合矩阵旋转来用,否则画出来了也看不到效果,立体图形相对复杂一些,最好能配合缓冲对象来使用,效率更高,代码也会简单一些。这一章通过2个例子和一段用c语言解释vao与vbo的方式向大家讲解缓冲对象的概念。1. 红宝书第一个例子    基本概念:1. vao

2017-11-13 19:08:12 1906 1

原创 openGL之glsl入门4--片元着色器显示bmp图片

前面几章的内容都只用到了顶点着色器,最终的图像是底色+黑色,不是很美观,使用片元着色器给程序加颜色,实际上是非常简单的,前面几章为了不引入太多的新内容,避免增加程序复杂性,没有增加片元着色器的使用。本章介绍片元着色器的使用方法,包括以下内容:1. 片元着色器与顶点关系2. 关闭颜色插值方式3. 使用片元着色器显示bmp图片1. 片元着色器与顶点关系    片元着色器为模型上色,

2017-11-10 19:13:30 1330

原创 openGL之glsl入门3--正弦函数叠加为方波

使用GLSL画点,画线,画面,与原来使用glBegin(), glEnd()的方式有类似的地方,原来方式api比较多,GLSL采用的数组一次传送,程序的本质还是坐标点的设计与确认,只要知道图怎么画,哪种方式差异不大,本章主要介绍:1. 正弦函数的基本画法2. 键盘的控制3. uniform变量的用法4. 正弦波叠加为方波的GLSL实现     GLSL画这些基本的类型是,使

2017-11-07 19:02:36 4073

原创 openGL之glsl入门2--helloworld

第一个程序还是简单一点的好,红宝书第一个例子,有两个地方比较难理解:1. 用到了vgl.h与LoadShader.h这两个头文件和相关函数,开始读这本书的时候,根本就不知道这两个头文件在哪里,你可以在配套代码目录oglpg-8th-edition的include和lib目录下找到相关的头文件和实现。2. 使用了vbo和vao,虽说是glsl编程比较基础的东西,但对初学者不好理解。

2017-11-02 19:11:18 2198 1

原创 openGL之glsl入门1--基本概念

从零开始学习openGL与GLSL(没有计算机图像学基础),开始确实挺费劲,网上的资料虽然多,但不系统,例子也不全,openGL还好(这里指的是v2.0之前的版本,使用glBegin(), glEnd()方式绘制),完整的例子比较多,而GLSL的例子相对少不少,中间走了不少弯路。下面说一下个人的一些学习经历和看法。1. 学习路线    GLSL的学习还是比较推荐以红宝书为主线进行学习,其他

2017-11-01 18:52:21 3335

原创 yuv转bmp说明2

BMP说明BMP是BitMap的缩写,即位图,是一种非压缩格式,图像文件一般比较大,Windows系统内部各图像绘制操作都是以BMP为基础的。BMP图像组成BMP文件由四部分:文件头信息,固定大小,结构体见BitmapFileHeader图像信息头,固定大小,结构见BitmapInfoHeader调色板,可选的,大小根据不同位数不同。位图RGB数据,大小可以根据位数,高

2017-08-01 17:02:33 2549

原创 yuv转bmp说明

YUV起源RGB是R(red)、G(green)、B(blue)的缩写,但同样是表示图像格式的YUV却不是缩写,而是一种颜色空间的表示方法,颜色空间的表示方法有很多种,常见的有RGB / CMYK / YIQ / YUV / HSI,而YUV是其中一种,可以把颜色空间表示方法看着为不同的坐标系表示方法,YUV中的Y是取自xyz坐标系中的y,而UV则是取自其他坐标系的名称,很多标准都是非常老

2017-07-24 19:34:49 1790

原创 awk命令用法入门--获取股票信息

起源用途awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。awk是一个强大的文本分析工具,尤其善于处理多行表格式文本,并生成报告.awk不仅仅是一个工具,也可以认为是一门语言。awk与sed的区别Awk、sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各

2017-07-19 15:42:27 445

软件测试与持续质量改进(第3版)

软件测试与持续质量改进(第3版),带书签目录版本,不错的一本书,奋斗在改bug路上的研发工程师可以看一下。

2018-07-02

《ELF文件格式分析.pdf》与elf解析代码

《ELF文件格式分析.pdf》文档,非常不错的elf格式参考文档,参考elf解析过程,能很快掌握elf文件格式

2018-03-22

yuv转bmp(16位,24位,32位)工具与vc工程

yuv转bmp程序,包含测试程序及相关代码,工程为vs2008,支持yuv420p转bmp565 bmp1555 bmp888 bmp8888多种格式

2017-07-24

空空如也

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

TA关注的人

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