自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

转载 裸机实验前的一些准备工作

这里的准备工作包括:一. 虚拟机 Ubuntu 的安装二. 主机 Windows 和虚拟机共享文件夹这里使用的 vmware-tools 实现共享,参考文献 https://www.cnblogs.com/ygh1229/p/6379817.html;操作中遇到几个问题记录一下。1. 完成所有操作后,如果 Ubuntu 中没有发现 /mnt/hgfs 目录,可以先安装 open-...

2018-07-30 11:35:07 229 1

原创 ARM 预备知识

一、2种工作状态1、ARM 态:32位,执行字对其的32位 ARM 指令;2、Thumb 态:16位,执行半字对齐的16位指令。3、两种状态间使用 Bx Rn 指令进行切换:    Bx是跳转指令,而Rn是寄存器(1个字,32位),如果Rn的位0为1,则进入Thumb状态;如果Rn的位为0,这进入ARM状态。原 因:ARM指令的后两位始终为0,没有用,而Thumb指令的后一位始终为0,没有用,因此...

2018-07-10 20:24:08 251

原创 S5PV210 启动过程

本文参考文档:5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf一、启动过程概述先看一下文档里给出的 S5PV210 的启动框架:1、硬件需求基于 CortexA8 的 S5PV210 微处理器64KB 的内部 ROM (iROM)96KB 的内部 SRAM通用 SDRAM 和对应的控制器4/8Bit 的高速 SD/MMC 控制器 和对应的SD...

2018-07-10 10:10:23 252

原创 qemu实践一:arm + linux + u-boot + NFS

一、基本环境二、qemu 安装三、开发板简介四、编译 Linux 内核和 dtb 文件五、使用 busybox 制作根文件系统六、使用 u-boot 加载 Linux 内核七、挂载 NFS 文件系统八、完善根文件系统九、在虚拟板上运行应用和内核驱动...

2018-05-15 17:02:07 1941

原创 gdb 概览

gdb(The GNU Project Debugger) 是一个由 GNU 开源组织发布的、UNIX/LINUX 操作系统下的、基于命令行的、功能强大的程序调试工具。调试器在软件开发中的作用无须多言。对于嵌入式软件开发工程师来说,熟练地以命令行的方式使用 gdb 进行软件调试是基本技能之一。现在假设有源程序 main.c 如下:--main.c--#include <stdio.h>...

2018-04-27 09:29:58 438

原创 ld概览

ld 链接器的功能是将一个可执行程序所需的目标文件和库最终整合为一体。一个程序通常包含传统的三个段:.text、 .data和 .bss 段。实际上,在目标文件和库被整合成一个可执行文件之前,通常各目标文件和库中也包含这三个段。不难想象链接器的功能就是将这些段进行合并。这之间有个非常重要的工作——重定位。1、重定位当一个源文件被编译为目标文件时,目标文件只记录了程序中的符号和各符号在段中的相对位置...

2018-04-25 16:49:36 326

原创 binutils工具集

如果使用 gcc 作为编译器,那么 binutils 就是必不可少的一个工具集。工具集中的部分工具除了被 gcc 在后台使用为我们创建程序文件(目标文件、库文件或可执行程序)外,其它的则有助于方便开发和调试。在不少嵌入式开发环境中,根据目标平台的不同,编译器的名称往往不是 gcc,而是像 arm-rtems-gcc 这样的名称。对于这种命名形式的编译器,其 binutils 工具集通常也采用 ar...

2018-04-19 17:34:05 895

原创 Makefile目录和文件依赖

1、目录的自动创建和删除--foo.h--#ifndef __FOO_H#define __FOO_Hvoid foo();#endif--foo.c--#include <stdio.h>#include "foo.h"void foo(){ printf("This is foo()!\n");}--main.c--#include "foo.h"int ...

2018-04-18 12:03:48 2257

原创 Makefile概览

在嵌入式开发领域中,大量的开发环境是通过使用 make 工具来构建的。而要使用 make 工具,就离不开编写 Makefile。make 一般主要被用来管理一个软件程序项目 (用来完成大型软件的自动编译),但是它不仅仅可以用来管理软件程序,还可以做很多其他的事情,比如文件同步等。makefile 是被 make 使用的“描述”文件,它描述要被 make 所管理的项目中的文件间的关系(比如对于一个 ...

2018-04-18 11:58:40 149

原创 gcc概览

GCC是 "GNU Compiler Collection" 的简称,属于 GNU 的一员。GCC 的步骤可以拆解如下:--main.c--#include <stdio.h>int main(){ printf("The is a test.\n"); return 0;}--main.c--| 预处理器| cpp| 命令:gcc -E main.c > main....

2018-04-18 11:40:53 242

原创 Linux设备驱动--字符设备(三、自动创建设备文件)

之前写Linux设备驱动程序的时候,都是利用mknod命令手动创建设备节点:% mknod Name { b | c } Major Minor用完之后,需要删除时,使用 rm Name 命令删除设备文件。这样做相当繁琐。实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,前提条件是用户空间移植了udev(嵌入式

2017-12-28 14:55:18 3387

原创 Linux设备驱动--字符设备(二、新注册接口)

字符设备(一)中已经介绍了2.6及之前注册设备的旧接口,为了与之前版本的兼容,Linux新版本的驱动也可以使用它来完成字符设备的注册。回顾一下字符设备注册的旧接口:static inline int register_chrdev(unsigned int major, const char *name, const struct file_operations *fops){

2017-12-27 09:47:10 393

原创 Linux设备驱动--字符设备(一)

Linux的设备分为三类:字符设备、块设备和网络设备。字符设备:指一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,数去数据需要按照先后顺序。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED等;块设备:指可以从设备的任意位置读取一定长度数据的设备。常见块设备包括硬盘、磁盘、U盘和SD卡等;网络设备:用来和外界交换数据报文时调用的设备。如网卡、VETH

2017-12-21 11:07:04 479

原创 Linux设备驱动入门 -hello world

参考书籍《Linux设备驱动第三版》一、源码解析--hello_module.c--#include #include static int __init hello_init(void){ printk(KERN_ALERT "Hello, world.\n"); return 0; }static void __exit hello_exit(vo

2017-12-20 16:03:05 1656 1

原创 第一个SWT程序

第一个SWT程序应项目需要,今天终于入了eclipse界面开发的坑,上手先来个SWT程序热身。 为偷懒不去重新下载各个插件,现使用eclipse-jee作为练手工具。步骤创建一个java新项目右键项目->build path->configure build path->Libraries下->Add JARs->org.eclipse.swt…,如果此路不通,请尝试第三步Add Exter

2017-05-17 21:34:33 2200

空空如也

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

TA关注的人

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