自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (4)
  • 收藏
  • 关注

原创 log4cplus 1.2.1 源码解析

log4cplus是C++轻量日志库,支持多个平台。

2024-08-20 11:08:00 831

原创 S3C2440驱动开发(十二)

内核启动流程内核启动分为两个阶段,内核引导阶段和内核启动阶段。内核引导阶段又可细分为,自解压搬运,内核启动前预处理。首先介绍自解压搬运流程,再介绍内核启动过程。(一)内核引导阶段(自解压搬运)前面章节已经介绍过bootloadert跳转到内核运行的过程,本节主要介绍内核自解压启动流程。上一节介绍了zImage文件的生成过程,zImage是可执行文件格式,是由arch/arm/boot/compressed/vmlinux文件通过objcopy转化的。而arch/arm/boot.

2022-03-24 15:47:55 541

原创 S3C2440驱动开发(十一)

内核编译分析确保在源码根目录下存在.config文件存在,若没有可从其他地方复制一个。然后执行make menuconfig命令配置内核编译选项。最后执行make命令进行编译。本节主要分析内核编译的Makefile,了解zImage生成过程。分析Makefile文件之前需对Makefile文件格式有一定了解,否则阅读内核Makefile文件会比较吃力。本文使用的内核版本为2.6.32.2。首先打开源码根目录下的Makefile文件,此文件称为顶层Makefile文件。在./Mak

2021-11-11 11:03:21 431

原创 S3C2440驱动开发(十)

Makefile介绍你需要一个名为‘Makefile’的文件去告诉make该干什么。通常情况下Makefile会告诉make怎么编译、链接一个程序。在一个大型项目中,GNU make工具可以自动识别哪些代码文件需要重新编译,以及使用哪些命令去重新编译。以下内容只是简要介绍makefile用法摘要,详细使用方法参考官方手册,或者参考Makefile教程(绝对经典,所有问题看这一篇足够了)_GUYUEZHICHENG的博客-CSDN博客_makefile这篇文章。Makefile格式如下:

2021-11-09 19:24:53 237

原创 S3C2440驱动开发(九)

vivi源码解析(二)继上面章节后,本节重点介绍vivi常用功能及实现原理。(1)Load加载命令加载命令,可以将程序或者文件通过串口加载到RAM和FLASH中,实现程序烧写功能。使用的数据传输协议是XMode协议。加载数据到FLASH中的流程为,先加载到RAM,然后将RAM写入FLASH中。写FLASH过程本文不再介绍。加载数据到RAM主要通过以下XMode协议解析函数实现。1 int get_record(void)2 {3 ...

2021-10-27 18:12:06 205

原创 S3C2440驱动开发(八)

Nand Flash驱动近些年来,相较于SDRAM和NAND flash存储器的经济性,NOR flash存储器价格高,这就促使了很多用户将启动程序放在NAND flash,需要执行的主代码放到SDRAM中。S3C2440A启动代码可以在外部的NAND flash中执行。为了支持NAND flash运行bootloader,S3C2440A内部有一个名为“踏脚石”的SRAM缓冲区。当系统上电启动时,NAND flash中的前4KB数据将会被自动加载到“踏脚石”中,这样加载到“踏脚石”中的启动代码将会被执

2021-09-24 18:44:52 1633

原创 S3C2440驱动开发(七)

BootloaderBootloader 以其本身的含义来讲就是下载和启动系统,它类似于 PC 中的 BIOS,大部分芯片厂商所提供的嵌入式系统都提供有这样的程序,而且都比较成熟,大可不必自行编写。为研究其工作原理,清扫上个章节裸机程序中的知识盲点,本章节将通过vivi单独介绍Bootloader的技术细节。vivi由三星提供,韩国 mizi 公司原创,开放源代码,必须使用 arm-linux-gcc 进行编译,主要适用于三星 S3C24xx 系列 ARM 芯片,用以启动 Linux 系统,支持

2021-09-24 18:40:32 2067

原创 win7连win10失败解决方法

先参考以下文章的方法对Win10系统进行设置win7连接win10远程桌面_不许说真话_新浪博客win7连接win10远程桌面_不许说真话_新浪博客,不许说真话,http://blog.sina.com.cn/s/blog_537517170102w2oz.html若还是连接不上,可进行如下设置:设置-系统-远程桌面-高级设置不勾选“需要计算机使用网络级别身份验证进行连接"...

2021-09-14 15:53:35 1710

原创 S3C2440驱动开发(六)

裸机程序开发之蜂鸣器程序先上代码,代码有点长,共409行。涉及到的寄存器比较多。本节只做代码解释,详细原理不再这里展开。#include "def.h"#include "option.h"#include "2440addr.h"#include "2440lib.h"#include "2440slib.h"#include "mmu.h"//================================#define LCD_WIDTH 240#def...

2021-05-08 15:16:07 314

原创 S3C2440驱动开发(五)

裸机程序开发之按键程序在开发板中实现按键检测有2种方式,一种是轮询,另一种是中断,本章节将介绍中断方式。CPU中的中断控制器可接收60种中断源,提供中断源的外设有:DMA控制器,UART,IIC,EINTn。本章节使用的中断是EINTn。以下是源码:1 #include "def.h"2 #include "option.h"3 #include "2440addr.h"4 #include "2440lib.h"5...

2021-05-06 17:19:19 228

原创 S3C2440驱动开发(四)

2021-04-19 11:32:23 234

原创 S3C2440驱动开发(三)

裸机程序开发之串口程序S3C2440A通用异步收发器(UART)提供三个独立的异步串行I / O(SIO)端口,每个端口都可以在基于中断或基于DMA的模式下运行。换句话说,UART可以产生中断或DMA请求用于在CPU和UART之间传输数据。 UART可以使用系统时钟,波特率最高可达115.2K bps。如果外部设备为UART提供了UEXTCLK,则UART可以以更高的速度运行。每个UART通道包含两个用于接收器和发送器的64字节FIFO。S3C2440A UART包括可编程的波特率,红外(IR)发送

2021-04-14 18:13:51 258

原创 S3C2440驱动开发(二)

裸机程序开发之LED程序以下代码段实现了一个简单的LED显示程序,程序比较简单,共53行。1 #include "def.h"2 #include "option.h"3 #include "2440addr.h"4 #include "2440lib.h"5 #include "2440slib.h"67 void dely(U32 tt)8 {9 ...

2021-04-13 18:10:07 383

原创 S3C2440驱动开发(一)

1.驱动开发概述本文主要针对友善之臂mini2440开发板而编写的学习资料。虽然市面上介绍Linux系统驱动原理和内核源码的书很多,但是直接上手比较困难,特买了一个Arm9开发板,希望从裸机程序开始学习,逐步掌握Linux系统驱动开发方法。编写本文的目的为记录学习过程,用于后期回顾。文章主要分为两部分。第一部分,从友善之臂提供的裸机程序开始介绍各各外设驱动开发过程。第二部分,linux驱动开发流程及实践。1.1 S3C2440A介绍三星S3C2440是为手持式设备而开发的16/32位精简指令集微

2021-04-13 09:44:04 964

原创 Windbg及Dump文件分析方法

1.WinDbg1.1WinDbg介绍WinDbg全称Debugging Tools for Windows,是windows平台下的调试工具。获取Windbg的三种途径:(1)在Visual Studio安装时安装Windows Driver Kit(WDK)。WDK中包含WinDbg。(2)安装Windows Software Development Kit (SDK)。SDK中包含WinDbg。下载地址(3)如果只下载单独的WinDbg,先下载SDK,在安装过程中选择“Debu

2021-03-08 11:31:17 8743

原创 CPngImage在Release版本退出时崩溃【已解决】

问题描述创建了一个基于MFC对话框的项目,对话框中添加了MFCButton控件,添加了一些PNG图片到资源中,用于显示图形按钮。当程序关闭时,发生了崩溃现象。使用WinDbg定位崩溃位置运行环境IDE:VS2015编译详情:Release,Win32,在静态库中使用MFC,使用Unicode字符集,使用链接时间代码生成(全程序优化)解决方法通过WinDbg发现出现问题的地方在MFC模块中。通过搜索引擎查找出了类似案例:https://bbs.csdn.net/topics

2021-03-06 15:56:09 167

翻译 IEEE Standard 754浮点数介绍

本文翻译自,并做补充:https://steve.hollasch.net/cgindex/coding/ieeefloat.htmlIEEE Standard 754是当下在计算机中描述实数最通用的一种方式,计算机包括英特尔系列的电脑,苹果公司的麦金塔电脑以及绝大多数Unix平台的电脑。本文给出了IEEE浮点数的描述,关于算法部分的实现可以参考文章末尾提供的参考资料。什么是浮点数?在计算机上描述实数的方法有很多。固定点在数字中间的某处放置一个小数点,相当于使用整数来表示单位的一..

2021-01-06 09:51:30 1647 1

原创 VS2015 资源视图显示问题

使用VS2015编写C++程序时,遇到一个奇怪的现象。相同的代码在不同的路径下打开vs,在视图资源视图中打开对话框资源显示的内容不一致。直接原因为代码中的APS文件未更新,使用的是老版本。APS是资源编译后的二进制文件。正常情况下VS会自动更新该文件,但是在某些未知情况下不更新。临时解决方法,将工程文件夹底下的.aps文件删除。规避方法,在SVN等版本管理软件中不要上传.aps文件。...

2020-11-26 11:02:34 1157

原创 Ubuntu 10.04 LTS安装及使用SVN说明

一、使用SVN源码安装以下使用svn-1.8.1进行编译安装,其他版本安装类似。subversion可以从http://archive.apache.org/dist/subversion/ 中下载subversion-1.8.1.tar.bz2解压。所有依赖库需要安装在同一个目录下,否则会出现svn安装出错问题:An appropriate version of serf could not be found, so libsvn_ra_serf will not be built. ..

2020-11-25 11:37:49 378

原创 QT5.12静态编译手册

QT5.12静态编译手册一、概要在Windows平台下开发的QT应用程序,使用官方下载的QTCreator编译程序(动态编译),部署到客户机器上需要加上QT的DLL库文件,文件多且占用空间大,同时需要安装C++的运行库(有的Windows版本会安装出错,比如未打补丁的windows7)。使用静态编译,部署时不需要额外的QT和C++运行库的DLL,且占用磁盘空间较少。本文档描述QT5.12在Windows平台下使用VS2015静态编译,以及设置QT Creator 4.4.1(Community)的方

2020-11-24 18:11:04 3070 7

原创 四则运算解析及计算

四则运算是中缀表达式,需要将其转化为后缀表达式。原因是计算中缀表达式很困难。明确运算符的优先级: 优先级(数字越大,优先级越高) 运算符 2 + - 1 * / 0 ( ) 格式化四则表达式输入的表达式可能出现无用的字符,需要去除否则影响下面的判断逻辑。处..

2020-07-10 18:04:37 1194

原创 Win32下 DLL调用DLL崩溃问题(已解决)

最近在一个项目中,使用两个DLL模块。DLLOne用于数据通信,DLLTwo用于业务流程处理,DLLTwo调用了DLLOne中的接口,还有一个exe主程序调用了DLLTwo。在使用VS2015调试时,发现程序发生了异常中断。但是直接双击生成的exe文件程序不会崩溃。查看调用的堆栈,发现中断的地方位于c++运行库的dllmain_crt_process_attach模块中。通过排除法,定位到问题点,分别是一个DLL中的socket(AF_INET, SOCK_STREAM, 0)和另外一个模块中.

2020-07-07 16:10:44 3047

subversion-1.10.6.tar.gz

svn1.10.6客户端源码,已在在多个平台编译通过。压缩包中有编译说明,以及需要的依赖库

2020-11-25

subversion-1.8.1.tar.bz2

svn1.8.1客户端源码,已在在多个平台编译通过。压缩包中有编译说明,以及需要的依赖库

2020-11-25

subversion-1.10.6-for-ubuntu10.04LTS.tar.gz

SVN1.10.6客户端程序二进制文件,有用于ubuntu10.04及以上版本。使用官方源码手动编译。

2020-11-25

subversion-1.8.1-for-ubuntu10.04LTS.tar.gz

SVN1.8.1客户端程序二进制文件,有用于ubuntu10.04及以上版本。使用官方源码手动编译。

2020-11-25

空空如也

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

TA关注的人

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