嵌入式
文章平均质量分 73
techping
这个作者很懒,什么都没留下…
展开
-
linux驱动:[1]LED驱动/dev/led
linux驱动:[1]LED驱动/dev/ledLED Linux驱动程序测试平台: Xunlong Orango Pi Zero代码一览(解析见下方)驱动程序以及Makefile如下:sun8i_opizero_led.c:#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <li原创 2017-01-15 22:43:11 · 1206 阅读 · 0 评论 -
linux驱动:[2]字符设备驱动memdev(cdev结构解析)
linux驱动:[2]字符设备驱动memdevLinux 内存模拟字符设备 驱动程序测试平台: Xunlong Orange Pi Zero代码一览(解析见下方)驱动程序以及Makefile如下:memdev.c:#include <linux/module.h>#include <linux/types.h>#include <linux/fs.h>#include <linux/err原创 2017-05-01 15:30:54 · 689 阅读 · 0 评论 -
sunxi:[1]Orange Pi Zero U-Boot启动剖析
全面剖析U-Boot with SPL启动过程:U-Boot SPL 2017.03-rc2-gc7a25b3-dirty (Mar 15 2017 - 17:35:37)common/spl/spl.c:preloader_console_init()DRAM: 256 MiBboard/sunxi/board.c:sunxi_board_init()common/spl/spl.c:bo原创 2017-03-15 17:40:40 · 2223 阅读 · 0 评论 -
sunxi:[0]全志SoC启动过程
sunxi学习:[0]全志SoC启动过程分析 参考:linux-sunxi.org启动流程:Boot ROM→SPL→U-boot(→Kernel→RootFileSystem)一、BROM阶段全志SoC有一个非常具体的启动过程。首先,它执行一个微小的片上 Boot ROM(BROM),然后检查按钮的FEL模式,然后开始检查各种存储选项的有效的引导签名在正确的位置。上电后,SoC开始从BROM原创 2017-03-14 20:57:49 · 7011 阅读 · 1 评论 -
从0开始运行主线Linux内核
从0开始运行主线Linux内核本博客以Xunlong Orangepi Zero为例,运行最新Linux 4.11.0-rc4内核。[Mainline U-Boot & Mainline Kernel & Rootfs Howto]Mainline U-Boot# 克隆u-boot仓库git clone git://git.denx.de/u-boot.git# 编译配置make orangep原创 2017-03-31 20:48:47 · 2431 阅读 · 0 评论 -
基于iTop-4412的U-Boot 2017移植[2]:支持SD/MMC
基于iTop-4412的U-Boot 2017移植[2]:支持SD/MMC经过前几篇博文的移植,已经成功在iTOP-4412开发板上运行了U-Boot。但是它不支持SD/MMC读写,怎么办呢?其实很简单只需要一步就行了!修改arch/arm/dts/exynos4412-itop4412.dts serial3:serial@13830000 { status = "okay"原创 2017-04-09 20:24:27 · 2590 阅读 · 5 评论 -
基于iTop-4412的U-Boot 2017移植[1]:成功运行
基于iTop-4412的U-Boot 2017移植[1]:成功运行 参考资料: + Exynos 4412的启动过程分析 + 基于tiny4412的u-boot移植获取U-Boot本博客使用的版本是 U-Boot 2017.05-rc1。$ git clone git://git.denx.de/u-boot.git开始移植本博客参考一款类似与iTOP-4412的开发板(采用相同的原创 2017-04-09 20:08:47 · 11057 阅读 · 27 评论 -
基于iTop-4412的U-Boot 2017移植[0]:Exynos4412基础
基于iTop-4412的U-Boot 2017移植[0]:Exynos4412基础 参考资料: + Exynos 4412的启动过程分析 + 基于tiny4412的u-boot移植Exynos4412 SoC基础- Exynos4412的地址空间iROM:这段地址空间对应Exynos4412内部固化的一段程序,Exynos4412启动的第一条指令就存放在这里。iRAM:这段地址空间原创 2017-04-09 19:02:36 · 6656 阅读 · 0 评论 -
U-Boot学习:[0]global_data 和 bd_info
U-Boot学习:[0]global_data 和 bd_info 基于U-Boot 2017.03-rc2-gc7a25b3-dirty 源码分析global_dataglobal_data 数据结构global_data 数据结构的定义位于源码目录:include/asm-generic/global_data.htypedef struct global_data { bd_t原创 2017-03-22 15:52:17 · 1349 阅读 · 0 评论 -
ARM 汇编指令学习:[2]ARM指令集
ARM 汇编指令学习:[2]ARM指令集一、跳转指令1、 B(跳转指令)及BL(带返回跳转指令) B{L}{<cond>} <target_address>其中:L 决定是否保存当前PC寄存器地址到LR寄存器中。<target_address> 为指令跳转的目标地址。这个地址的计算方法是:将指令中的24位带符号的补码立即数扩展为32位(扩展其符号位);将此32位数左移两位;将得到的值加到PC寄原创 2017-01-12 17:08:00 · 919 阅读 · 0 评论 -
ARM 汇编指令学习:[1]ARM指令寻址方式
ARM 汇编指令学习:[1]ARM指令寻址方式一、数据处理指令的操作数的寻址方式<opcode>{<cond>}{S} <Rd>,<Rn>,<shifter_operand><shifter_operand>通常具有下面3种格式:1、 立即数方式#<immediate>其中,#<immediate>=immed_8循环右移(2*rotate_imm)。使用说明这里需要注意关于立即数的合法性以立即数原创 2017-01-12 14:53:33 · 1444 阅读 · 0 评论 -
ARM 汇编指令学习:[0]编码格式与条件码域
ARM 汇编指令学习[0]:编码格式与条件码域一、ARM指令的编码格式 31 28 27 21 20 19 16 15 12 11 0 cond opcode S Rn Rd shifter_operand 其中:cond [31-28] 4-bit 指令执行的条件编码opcode [27-21] 4-bit 指令操作符编码S [20]原创 2017-01-11 21:18:08 · 2935 阅读 · 0 评论 -
【教程】在Ubuntu下搭建ARM处理器 arm-linux-gcc 交叉编译环境以及OpenJTAG + openocd 烧写环境
在Ubuntu下搭建ARM处理器 arm-linux-gcc 交叉编译环境以及OpenJTAG + openocd 烧写环境前言本教程所用操作系统为Ubuntu 16.04,所用ARM处理器为Samsung S3C2440,在FriendlyARM Mini2440开发板上进行操作,使用OpenJTAG + openocd 烧录程序。当然,道理是相通的,所以在不同平台下也只是稍微修改一部分的配置就可原创 2016-11-14 15:57:00 · 2601 阅读 · 0 评论 -
linux驱动:[3]高级字符设备驱动之ioctl
linux驱动:[3]高级字符设备驱动之ioctllinux驱动:[3]高级字符设备驱动之ioctl测试平台: x86 PC linux-4.4.01.实验目的:学习并编写ioctl linux高级字符设备驱动程序。编写驱动 scull ,使用5个指令实现对设备数据的清零,读取,写入操作。2.驱动代码:(解析见下方)scull.c:#include <linux/module.h>#incl原创 2017-05-06 19:43:26 · 996 阅读 · 0 评论