自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 配置Busybox的选项时,选择静态链接与动态链接的区别

1. 静态链接与动态链接的概念静态链接是在指编译系统在连接阶段将程序的目标文件与所欲需要的库函数文件链接在一起,这样生成的可执行文件可以在没有函数库的情况下运行。动态链接是指编译系统在编译阶段没有把目标文件与所需要的库函数文件链接在一起,而是等到程序运行阶段的需要使用时才链接库函数。2. 静态链接与动态链接的优缺点静态链接优:运行效率高缺:生成的可执行文件较大动态链接优:运行效率低​缺:生成的可执行文件较小3.在配置Busybox的选项时,选择静态链接与动态链接的

2020-10-27 09:35:21 713 1

原创 在给u-boot打补丁时,make出错

在给u-boot打补丁时,make出错最开始是从网上下载的arm-linux-gcc 4.6.4 添加完环境变量后可以查利用arm-linux-gcc -v查看到版本号,也可以正常编译程序。但是在打补丁之后的最后一步make时出现错误。arm-linux-ld: failed to merge target specific data of file /usr/local/arm/gcc-4.6.4/bin/../lib/gcc/arm-arm1176jzfssf-linux-gnueabi/4.6.4

2020-10-15 20:23:45 527

原创 C++ 学习笔记(5) 继承同名成员与静态同名成员处理方式

C++ 学习笔记(5) 继承同名成员与静态同名成员处理方式1. 继承同名成员处理方式问题:当子类与父类出现同名的成员,如何通过子类对象,访问到子类或父类中同名的数据呢?答:访问子类同名成员 直接访问即可访问父类同名成员 需要加作用域#include<iostream>#include<string>using namespace std;class father {public: father() { m_age = 40; }public

2020-10-14 19:28:09 243

原创 # C++ 学习笔记(4) 继承基础

C++ 学习笔记(4) 继承基础继承是面向对象三大特性之一有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候我们就可以考虑利用继承的技术,减少重复代码。1. 继承的基本语法class A : public B;A 类称为子类 或 派生类B 类称为父类 或 基类继承的好处:可以减少重复的代码下面为实例程序:#include<iostream>#include<string>using

2020-10-14 17:02:54 253

原创 ARM 裸机开发学习笔记(5)中断体系结构

ARM 裸机开发学习笔记(5)中断体系结构ARM体系CPU一共有7种工作模式,分别为:用户模式,快速中断模式,中断模式,管理模式,数据访问终止模式,系统模式,未定义指令中止模式。可以通过软件来进行模式切换,或者发生各类中断,异常时CPU自动进入相应的模式。除用户模式外,其余的6中工作模式都属于特权模式。大多数程序运行于用户模式,进入特权模式是为了处理中断,异常,或者访问被保护的系统资源。1. 异常事件处理方式CPU运行过程中,是如何知道外设发生了某些事件,如按键,触摸屏,与外设数据的交互。有两

2020-10-10 14:35:11 213

原创 C++ 学习笔记(3) 封装

C++ 学习笔记(3) 封装封装是C++面向对象三大特性之一1. 封装的意义与权限封装的意义(1):将属性和行为作为一个整体,表现生活中的事物将属性和行为加以权限控制封装的意义(2):类在设计时,可以把属性和行为放在不同的权限下,加以控制。在c++中,共有三种权限:公共权限 public : 类内可以访问 类外可以访问保护权限 protected: 类内可以访问 类外不可以访问私有权限 private: 类内可以访问 类外不可以访问2.成员属性设置为

2020-10-05 21:08:58 180

原创 ARM 裸机开发学习笔记(4)NAND FLASH 控制器

1.NAND FALSH 介绍我看来,NAND FLASH 在嵌入式系统中与pc上的硬盘的功能类似,用于保存系统运行过程中的各种数据。且可以在断电后继续保存。例如:在s3c2440中将一个点灯程序烧写到NAND FLASH 中,下一次利用NAND FLASH启动,程序任然可以正常运行。2.NAND FLASH硬件连接由上图可发现:NAND FLASH只有LDATA0-LDATA7 这7条数据线,因此 命令、地址、数据都通过8个I/O口输入/输出,这种形式减少了芯片的引脚个数,并使得系统

2020-09-30 14:36:03 379

原创 ARM 裸机开发学习笔记(3)内存管理单元MMU

ARM 裸机开发学习笔记(3)内存管理单元MMU在学习ARM裸机中的内存管理单元MMU时,又回头翻看了在学习linux进程时学到的关于MMU的知识。在此,对两者进行一个小结。1. linux中的MMU如上图所示:对于程序计数器位数为32位的处理器来说,他的地址发生器所能发出的地址数目为2^32=4G个,于是这个处理器所能访问的最大内存空间就是4G。而实际的物理内存可能为1G,小于这个数目。但是,程序总是逐段被运行的,而且在一段时间内会稳定运行在某一段程序里实际上,一个程序在运行之前,没有必要

2020-09-27 15:22:15 707

原创 C++ 学习笔记(2) 内存分区模型

C++ 学习笔记(2) 内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收题外话:看到堆和栈的时候,想到了之前学习线程时的知识。一个进程可以调用pthread_creatre()函数创建多个线程。多个线程之间共享全局变量,这就引出了线程之间同步的概念,有了条件,锁等等

2020-09-25 19:21:12 286

原创 C++ 学习笔记(1) 指针常量与常量指针

C++ 学习笔记(1) 指针常量与常量指针const修饰指针有3种情况const修饰指针 — 常量指针const修饰常量 — 指针常量const 即修饰指针,又修饰常量const修饰指针时,指针的指向可以改变,但是指针指向的值不可以改变。下面为例子:const修饰常量时,指针的指向不可以改变,但是指针指向的值可以改变。下面为例子:...

2020-09-25 17:11:45 138

原创 ARM 裸机开发学习笔记(2)存储控制器与外设

ARM 裸机开发学习笔记(2)存储控制器与外设1. sc2440可接多少个外部设备由下图的电路图可以看出:sc2440有27根地址线ADDR0~ADDR26,它最多能够寻址128MB,而S3C2440的数据线为32,则寻址空间可以达到1GB。同时S3C2440A还对外引出了8根片选信号线nGCS0-nGCS7,对于BANK0-BANK7,这样组合起来就能达到1G的物理寻址空间。这意味着:每一个片选信号可以对应着一个外设,sc2440可以连接8个外设。2. sc2440中的存储管理器起到什么作用例

2020-09-24 20:14:31 262

原创 深入了解计算机系统学习笔记——第一章

第一章 计算机系统漫游学习笔记这一章主要介绍的是计算机的总体结构。通过一个hello,world的小程序进行的说明。总体来说一个程序的执行离不开硬件,软件与操作系统的共同工作。1.1 信息就是位与上下文任何的一个程序实际上是由值0或1组成的为序列,8各位组成一个字节。而每个字节来表示程序中某个文本的字符。现在基本是用ASCII码。一个基本思想就是:系统中的所有文件——包括磁盘文件,在网络中传输的数据都是以比特的形式传输的。而用来区分的方法就是上下文。在不同的上下文中,相同的字符序列表示不同的含义。1

2020-09-23 21:05:12 131

原创 ARM 裸机开发学习笔记(1)基于sc2440点亮led灯

ARM 裸机开发学习笔记(1)基于sc2440点亮led灯学习目的经过点亮led灯的几个实验,初步的掌握了嵌入式开发的基本流程:编译程序。利用linux中的交叉编译对于源程序进行编译,才能编译出在ARM平台上运行的程序。烧写。将编译好的可执行文件通过烧写工具烧写到sc2440开发板中。本次利用oflash进行烧写。运行,观察结果。通过GPIO控制点亮LED基本步骤:首先查看sc2440原理图,找到led的电路图以及led与sc2440的哪个引脚相连接。其次查看芯片手册,根据手册信息判断通

2020-09-23 12:52:44 939

arm-linux-gcc-3.4.5

构建的交叉编译环境适用于s3c2440,最开始是从网上下载的arm-linux-gcc 4.6.4 添加完环境变量后可以查利用arm-linux-gcc -v查看到版本号,也可以正常编译程序。但是在打补丁之后的最后一步make时出现错误。后来用的arm-linux-gcc-3.4.5重新构建编译环境,最后make通过

2020-10-15

空空如也

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

TA关注的人

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