自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [咕噜Todo]我写了一个简单易用的todo pc工具、希望你也喜欢。

官网👉 https://anfo.fun/group。使用tags灵活分类,还可以设置子任务、视图管理等。直观了解计划完成情况,轻松应对deadline。多任务并行也不会把脑袋烧掉!还添加了计时器功能。根据tags连接世界,与朋友一起进步。正在做(客户端的功能)

2022-10-03 22:37:29 112

原创 Berkeley db Db Version Mismatch问题

Berkeley db Db Version Mismatch问题在运行使用到Berkeley db库程序的时候出现了DB_VERSION_MISMATCH的错误。如字面意思,下次可以考虑这种情况。 问题便在于使用库的时候,就是说在编译我的程序时,链接到该库时使用的是当前版本。 而在系统中存在着旧版的berkeley db库。。这时候如果编译的时候没有将头文件引入到该项目中便会使用旧版本的头文件

2017-02-21 00:38:14 1501

原创 linux下sublimetext的中文输入问题解决方法

InputHelper插件好奇怪哦,竟然一个文本编辑器在linux平台下竟然原生不能切换并使用系统自带的输入法= =。所以就有了一系列插件,看到网上各种方法,我觉得还是使用inputhelper这个插件最简单。使用这个插件可以通过Package Control来进行安装。Package Control:控制台下执行下面的命令 import urllib.request,os,hashlib;

2017-02-19 20:34:46 1299

转载 Linux系统运行级别 + 如何设置程序随操作系统自启动

本文转载自 http://blog.chinaunix.net/uid-22746363-id-383989.html, 感谢原文作者。通过阅读如上链接,简单总结下自己对Linux系统运行级别的理解:a. Linux系统有7个运行级别,其中最常见的是3和5;b. 级别3是我们所谓的命令行模式,级别5则启动了图形界面。c. 不同级别的差别就是系统默认启动的服务不同(如3不

2017-02-11 10:34:09 498

转载 Daemon Process

Daemon Process守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待    处理某些发生的事件。守护进程是一种很有用的进程。     Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。    同时,守护进程完成许多系统任务。比如,作业规划进程crond,打

2017-02-04 10:09:41 1574 1

原创 windows下nslookup后dns解析正常,ping域名都能ping通,但是就是上不了网,开机显示socket init出错

问题跟题目一样。解决方法就是 :在命令行输入netsh winsock reset .重启电脑就可以了。将windows下的网络编程接口恢复到原来的状态。

2016-12-02 12:03:44 2557

原创 C++ 多态中虚函数实现原理分析

C++ 多态多态在C++中表现为,通过基类指针指向其派生类对象,用该指针调用基类中声明的虚函数,编译器可以自动根据该对象类别来确定实际调用的函数。可以通过以下例子说明://demo1#include using namespace std;class A{public: A(){} void say(){cout<<"A\n";}};class B:pub

2016-09-24 15:36:53 389

原创 linux u盘刻录 启动不了的解决方法记录

每次要使用的时候都忘了,于是记录下来 以做备忘发生问题的表面原理是 因为 u盘的名字与 安装包本身默认定义的自己的光盘文件名不同。所以将安装的时候的传参中的 hd:Label 按如下方式修改将vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet

2016-09-23 13:05:35 2693

转载 C++多态的实现原理

1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚函数来实现,结合动态绑定。5. 纯虚函数是虚函数再加上= 0。6. 抽象类是指包

2016-09-21 14:36:25 247

转载 POSIX.1 and ISO C标准头文件

ISO C标准定义的头文件(24项)       ----------------------   验证程序断言    ----------------------   支持复数算术运算        ----------------------   字符类型        ----------------------   出错码          --------------

2016-08-24 23:59:24 428

原创 终于在理解虚拟地址与物理地址后写好了第一个linux驱动——led驱动

内核版本为 2.6.38贴上代码:#include #include #include //alloc_chrdev_region ,etc#include //dev_t#include //MKDEV MAJOR MINOR Macro#include //fops alloc_chrdev_region,etc#include //reques

2016-07-07 01:18:30 927

原创 关于MMU与各种地址的理解

如何描述一个MMU ( Memory Management Unit ) 内存管理单元。目的(功能):对于程序而言,为了将程序分割成一张张的卡片(页面),然后再运行的时候将需要的部分嵌入到物理内存的卡槽(页框)里面。MMU就是为了完成操作系统的这个功能而设计的。MMU可以在被初始化后,形成的一个个虚拟地址对应到物理地址,将一张张的卡片分别映射到相应的物理内存中。举个例子:在linux中的每个进

2016-07-04 00:42:27 1761

原创 platform总线设备实验

红色字体部分与一般字符设备创建,提供应用层面的接口有关。黑色字体部分则是 platform总线设备相关内核版本为 4.x上面是一个platform总线的设备,关于led的一个驱动程序。大概结构就是通过总线,设备,驱动的设备驱动模型来管理设备,然后再通过字符设备创建的过程来向应用层提供接口,不知道这样做是否有点罗索与重复,但是目前的理解就是还不太到家。通过probe函

2016-06-28 17:44:07 342

原创 内核模块里的一点错误直接导致系统崩溃

#include #include #include #include MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("Anfo");ssize_t show_def(struct bus_type *bus,char *buf){    buf="what?";    return 0;}ssize_

2016-06-28 01:32:03 898

原创 Linux下模块编译 MODPOST 0

一般来说出现MODPOST 0情况的时候基本是 Makefile的格式问题,例如声明变量的时候没有Tab 又或者对应的接口变量没有设置好 obj-m 之类的。然后就是编译这种不同版本的模块的时候大可不必上kerne.org的官网上下kernel源码 若是centos redhat 或者 fedora 可以直接使用yum install kernel-devel如果需要旧版可能需要一

2016-06-28 00:20:32 3380 1

转载 理解devfs、sysfs、udev

linux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。  一、devfs  devfs是在2.4内核就出现了,它是用来解决linux中设备管理混乱的问题,你查看一下/dev下的设备文件就知道其中有许多是空的(也就是没有对应的硬件的),但是它们却必须存在,所以这给linux设备管理带来了很多麻烦,为了解决这个问题,linux内核开发人员开发了devfs,

2016-06-25 01:22:48 542

转载 linux内核sysfs详解

"sysfs is a ram-based filesystem initially based on ramfs. It provides a meansto export kernel data structures, their attributes, and the linkages between them touserspace.” --- documentation/file

2016-06-25 01:22:09 1222 1

转载 在嵌入式设备上运行高性能Java

在嵌入式设备上运行高性能Java作 者:ARM中国摘 要:在过去几年里,无线手持设备市场对Java产生了巨大的需求增长,主要的增长力量来自于移动游戏。广大消费者,网络运营商,服务/内容提供商以及手机制造商强烈渴望手机的Java性能更强劲,支持更多更复杂的应用,为产业链各方带来更多商机和收入。本文重点关注嵌入式设备Java平台的需求,尤其是Java

2016-06-13 22:34:03 4780 1

转载 ARM异常中断返回的几种情况

重要基础知识:R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或正在“译码”的指令。一般来说,人们习惯性约定将“正在执行的指令作为参考点”,称之为当前第一条指令,因此 PC总是指向第三条指令。当 ARM 状态时,每条指令为 4 字节长,所以 PC 始终指向该指令地址加 8 字节的地址,即:PC 值=当前程序执行位置+8;    而 ADS 中的 pc,是为了调试看着方便而

2016-06-13 22:05:50 5299 1

原创 关于uc/os-ii在c51上的移植总结

ucos 在 51单片机上的移植

2016-05-23 12:02:16 1584

转载 do...while(0)的妙用

do...while(0)的妙用在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while

2016-04-05 09:59:15 278

原创 MTD,文件系统,存储器分区的个人理解

MTD是 memory technology device的简称 (奇怪的中文译名内存技术设备)个人理解:MTD实际上是跟VFS差不多的东西,VFS是虚拟文件系统,在VFS中有对各种具体文件系统的接口,将虚拟文件系统向上能提供的接口完成,通过调用下层具体文件系统接口即可实现。MTD即提供统一的上层接口,由下层具体设备分别实现即可形成虚拟的存储设备访问接口。关键在于只要上层存在对MTD实现接

2016-03-12 22:19:22 7090

原创 交叉编译链编译器的错误 error trying to exec 'cc1': execvp: No such file or directory

奇奇怪怪,原来是cc1的权限的问题,cc1文件在交叉编译器目录里的libexec里,查看它的权限,发现只有root有rwx的权限,在使用root用户发现编译内核的时候就没有再出现这个问题了。所以解决方法就是改变cc1的权限即可。

2016-03-11 10:58:50 1716

原创 困扰我M久的minicom的乱码问题!!!

从很久很久以前,大概是放寒假以前这个问题就一直没解决,从网上搜了一大堆解决方法,最后发现好像都是换了条线好了。我总觉得不太对,毕竟windows操作系统下是正常的,但还是要学阿。就将就的在windows下将linux装在虚拟机里进行开发,虽然各种不便,还是将就将就。终于最后忍无可忍买了一条另外一个驱动的usb转串口线,我还是嫌贵,但是就没乱码了 @。@ 原因在哪里!!! 是驱动的问题吗?

2016-03-04 12:49:04 7928 2

原创 对操作系统的思考

操作系统是一个软件。在编写过裸机程序之后就知道一个程序跑起来是需要怎样的资源与怎样的环境的。这个时候组织这个环境与资源分配的便是操作系统。操作系统就是一个运行在裸机上的程序。操作系统为上层应用提供接口。一个操作系统可以为上层应用提供接口,这个时候程序员使用接口的时候就不是面对裸机了,而是面对抽象化之后的一个机器,这个机器就是操作系统。在操作系统抽象化之后,cpu芯片的工作调度与核心功能

2016-03-04 00:48:55 591

原创 S3C6410与1G nandflash k9k8g08u0e

这个nandflash搞了好久好久,就是因为在做中断的时候必须要把代码放到nandflash的0addr上,而手上也找不到能烧录进去的(硬件资源)方法,于是就打算使用软件的办法来进行烧录。目前还有很多的nandflash的只是还没搞懂,但是可以进行简单的开发。①在编程时候遇到了一个问题就是在read id的时候read出了奇奇怪怪的id,数值上是存在的但是顺序不同。为此做了

2016-03-02 12:43:41 1120

原创 cpu运行模式切换以及异常处理

s3c6410的cpu核总共有7中模式,体现在cpsr[4..0]寄存器上:user 用户模式fiq 快速中断模式irq 通常的中断模式svc 管理模式abt 数据访问终止模式sys 系统模式und 未定义指令中止模式一般在发生异常的时候会伴随cpu运行模式的自动切换,通常都是切换至除用户模式以外的其他模式。用户模式只有手动切换(即通过修改cpsr的值来切换

2016-02-26 00:25:03 4490

原创 S3C6410 UART0 简单配置

ULCON0 0x7F005000 R/W UART channel 0 line control register 0x00UCON0 0x7F005004 R/W UART channel 0 control register 0x00UFCON0 0x7F005008 R/W UART channel 0 FIFO control register 0x0UMCON0 0x7F0

2016-02-16 23:22:58 1122

原创 S3C6410的clock设置

在clock的学习中发现看datasheet是很重要的事情,最不爽的就是datasheet是英文的。看起来非常累。好 进入clock设置的正题。要设置clock就根据datasheet中给出的图。(S3C6410x)根据这幅图 就能够设置好APLL以及MPLL两个锁相环所提供的时钟了。还有一个EPLL的锁相环在下面没截出来。其中APLL产生ARMCLK,供给arm core

2016-02-15 23:15:25 385

原创 grub2中添加windows的启动项 安装linux后添加windows系统的引导入口

在/etc/grub2.cfg文件的最后添加以下内容,然后用grub2-mkconfig>/etc/grub2.cfg 重定向到cfg文件。即可。menuentry "Windows 10 (loader)" --class windows --class os {    insmod part_msdos    insmod ntfs    set root='(hd

2016-01-03 21:18:21 6307

原创 Makefile = 、:=、?=的区别

= 相当于 c 语言中的 预编译的过程,在真正解释Makefile前会先将对应的=号左边的量替换成右边的量。而:=则是跟 宏观的 =号相似,是简单赋值的运算符号。下面举个例子就可以清楚的知道它们之间有何不同。cross = arm-linux-cc = $(cross) gcccross =这里的cc会等于gcc,因为最后的cross是空白,所以在解释时

2016-01-03 00:28:26 331

空空如也

空空如也

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

TA关注的人

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