
嵌入式基础知识
-黑色幽默-
Free style
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Dynamic DMA mapping Guide
Dynamic DMA mapping Guide一、前言二、从CPU角度看到的地址和从DMA控制器看到的地址有什么不同?三、什么样的系统内存可以被DMA控制器访问到?四、DMA寻址限制五、两种类型的DMA mapping六、如何使用coherent DMA mapping的接口?七、DMA操作方向八、如何使用streaming DMA mapping的接口?九、错误处理一、前言这是一篇指导驱动工程师如何使用DMA API的文档,为了方便理解,文档中给出了伪代码的例程。另外一篇文档dma-api.txt转载 2020-05-14 10:07:01 · 504 阅读 · 0 评论 -
嵌入式视频监控
嵌入式视频监控目前,嵌入式系统在视频监控中的应用越来越广泛。伴随着网络的强大功能,视频监控更侧重网络监控方案,要求体积小、远程化、成本低、功耗小、操作界面人性化等。本系统基于嵌入式Linux 平台上利用USB 摄像头采集视频图像,通过视频图像压缩及结合网络进行视频图像传输,使远程监控成为可能。文章目录嵌入式视频监控1 系统介绍1.1 协议介绍1.2 onvif 协议1.3 rtsp 协议...原创 2020-02-23 21:39:32 · 7572 阅读 · 5 评论 -
awk用法
awk:用于一行中分成数个“字段”来处理。适合处理 小型数据。运行模式:awk '条件类型1{动作1} 条件类型2{动作2} ...' filename# last | awk '{print $1 "\t" $3}' <== 查看登录者的数据,只显示登录名和ip地址,并以[tab]隔开awk 的内置变量变量名称 代表的含义NF 每一行($0)拥有的字段总数NR 当前 awk原创 2013-05-09 17:05:06 · 853 阅读 · 0 评论 -
学习ext2文件系统
最近在学习ext2文件系统,由于各种原因,学习过程断断续续。再次记录学习中的坑和重点,作为以后写出优秀博客的基石。网上有很多ext相关的博客,但是很多都是转载和抄袭的,非常不负责任,错漏百出。包括《深入理解linux内核》中第十八章“Ext2和Ext3文件系统”,其中的错误很误解人,或者说用词很不严谨,例如:732页下方介绍超级块和组描述符,是这样说的:超级块与组描述符被复制到每个块组中。这句话就很原创 2017-04-10 10:05:44 · 635 阅读 · 0 评论 -
移植qt5.6.0到armv7 <完整过程>
移植qt5.6.0到armv7 <完整过程> 概述:本log记录移植qt的整个过程,包括从安装虚拟机到最后编译成功,因为其中任何一个细节都可能导致移植失败目录移植qt560到armv7 完整过程目录环境环境介绍环境搭建下载软件安装安装交叉编译工具安装tslib14targz安装qt-everywhere-opensource-src-560-alphatargz安装arm-原创 2017-09-06 17:08:46 · 5685 阅读 · 1 评论 -
开发板和qt中文显示异常解决方法记录
使用beagleboneblack开发,陆陆续续遇到很多问题,再次记录下,开发板中文显示异常解决办法。原创 2017-09-28 11:42:58 · 2222 阅读 · 1 评论 -
无屏幕使用树莓派3
无屏幕使用树莓派3本blog部分内容来源于网络,经过个人整理所得.目录:无屏幕使用树莓派简介安装系统开启ssh设置eth0联网设置wifi 联网设置静态简介它是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板原创 2018-02-07 13:51:53 · 1303 阅读 · 0 评论 -
beaglebone设置gpio
beaglebone设置gpio系统:Linux beaglebone 4.4.9-ti-r25 #1 SMP Thu May 5 23:08:13 UTC 2016 armv7l GNU/Linux 硬件:beagleboneblack使能gpio首先要使能gpio,如何查看想要的gpio是否已经使能了,也就是查看他的工作模式mode。在目录/sys/kernel/debug/...原创 2018-02-28 17:04:17 · 1571 阅读 · 2 评论 -
stm32 定时器学习
时钟time3定时器这里使用stm32f407,在学习定时器,再次总结一下。 软件环境:使用st官方的两个软件,stm32cubemx + trueSTUDIO,原因是st在大力推广这两个开发套件。 cubemx提供的是HAL库,这个库是发展趋势,封装更完善,移植更方便; trueSTUDIO编辑器完美支持cubemx,使用eclipse的软件,自己完善出来的,自带插件工具...原创 2018-03-21 12:10:36 · 2650 阅读 · 0 评论 -
ubuntu系统使用eclipse+openocd+openjtag/jlink开发stm32
环境搭建篇ubuntu系统使用eclipse+openocd+openjtag/jlink开发stm32 相信很多同学在学习stm32,环境搭建很麻烦,这里总结一下,希望可以方便小伙伴们。 ubuntu系统使用eclipse+openocd+openjtag/jlink开发stm32环境介绍安装openjtag或jlinkopenjtag驱动安装jl...原创 2018-03-27 09:47:47 · 2720 阅读 · 0 评论 -
makefile学习笔记
学习makefile笔记一个我个人觉得非常实用的例子:eg:在当前目录下有a.cpp and b.cpp 现在写一个makefile,将这些文件编译出对应的.o文件。begin: 1 2 src=$(wildcard *.c) 3 dir=$(notdir $(src)) 4 obj=$(patsubst %.c,%.o,$(dir) ) 5原创 2014-03-26 15:12:46 · 645 阅读 · 0 评论 -
socket通信中tcp和udp包大小确定
UDP和TCP协议利用端口号实现多项应用同时发送和接收数据。数据通过源端口发送出去,通过目标端口接收。有的网络应用只能使用预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP和TCP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。动态端口的范围是从1024到65535。 MTU最大传输单元,这转载 2014-11-27 16:34:33 · 2604 阅读 · 0 评论 -
linux驱动笔试题总结
linux驱动笔试题总结试题取之于网络,用之于民。最近在学习linux驱动,驱动开发在笔试的时候考的知识点是有规律可循的,并且这些面点也是平时驱动工作中的理论指导,深刻的理解这些面点还是很有必要的,所以在此总结记录,相信会用到的。 ps:以后面试驱动,谁在问我这些问题,我鄙视死他。权威答案整蒙b他。linux驱动笔试题总结1linux中内核空间及用户空间的区别用户空间与内核通信方式有哪些2li原创 2016-07-12 12:26:29 · 7484 阅读 · 0 评论 -
制作u盘启动linux系统
制作u盘启动linux系统本文记录我制作u盘驱动的过程,按照这篇教程,你可以得到一个装有linux3.10.10操作系统的u盘,可以启动x86架构的主板,文件系统使用busybox制作。制作u盘启动linux系统所需工具第一步为u盘分区第二步为u盘安装grub第三步编译kernel第四步制作文件系统第五步启动吧u盘君所需工具高质量u盘一个,容量大于4Glinux3.10.10内核源码原创 2016-05-17 21:29:03 · 4658 阅读 · 0 评论 -
ARM中断体系结构
ARM中断体系结构arm体系结构cpu工作的七种模式用户模式(usr):ARM处理器正常的程序执行状态系统模式(sys):运行具有特权的操作系统任务管理模式(svc):操作系统使用的保护模式中断模式(irq):用于通用的中断处理快速中断模式(fiq): 用于高速数据传输或通道处理数据访问终止模式(abt):当数据或指令预取终止时进入的模式未定义模式(und):当未定义指令执行时,进入该原创 2016-04-19 10:21:52 · 962 阅读 · 0 评论 -
嵌入式裸板为什么要ld设置text段地址
在学习嵌入式,编写裸板程序时,遇到在Makefile中需要定义text的地址,感到很疑惑(我比较菜,大婶出门右拐),因为之前都是在linux系统上执行程序。example:.extern main.text.global _start_start:Reset:ldr sp, =4096bl disable_watch_dogbl memesetupb原创 2016-04-08 15:16:20 · 1153 阅读 · 0 评论 -
busybox里的init
busybox里的initbusybox被大家比作瑞士军刀,主要是它以很小的体积提供给我们很多很有用的shell指令。但是这里我们要关注的是busybox的init。内容有些多,我们结合它的init.c的代码做简单介绍(busybox-1.11.2/init/init.c)。1、首先busybox的init会尝试只读方式打开inittab,并读取里面的配置:static v转载 2015-11-19 10:47:45 · 695 阅读 · 0 评论 -
运行于u盘的精简linux系统制作
运行于u盘的精简linux系统制作1、裁剪linux内核 如何裁剪linux系统,主要是设置menuconfig,里面有很多设置,按照“金钟国”大神的教程,一步一步来就可了。这里不在赘述。 强调一下生成的文件格式, vmlinuz的建立有两种方式。 一是编译内核时通过“make zImage”创建,手动拷贝到/boot目录原创 2015-11-18 16:34:10 · 2673 阅读 · 0 评论 -
MBR初识
mbr位置:位与0磁道,0磁头,1扇区。为什么是1扇区呢,因为扇区的编号是从1开始计算的,mbr就是硬盘的前512字节.0磁道也就是0柱面,0磁道位与硬盘的最磁道,最外磁道的数据比较稀疏,数据可靠性高,所以用来存放关键性的代码。mbr的作用:系统在启动进入bios后,首先自检(post),然后初始化硬件(init),然后扫描硬盘启动项,扫描到启动盘后,copy前512字节到内存0x原创 2015-08-18 14:47:55 · 805 阅读 · 0 评论 -
RamDisk有三种实现方式
RamDisk有三种实现方式: 在Linux中可以将一部分内存mount为分区来使用,通常称之为RamDisk,分为: Ramdisk, ramfs, tmpfs. ① 第一种就是传统意义上的,可以格式化,然后加载。 这在Linux内核2.0/2.2就已经支持,其不足之处是大小固定,之后不能改变。 为了能够使用Ramdisk,我们在编译内核时须将b转载 2015-04-03 10:53:44 · 3537 阅读 · 0 评论 -
学习随笔
mbr位置:位与0磁道,0磁头,1扇区。为什么是1扇区呢,因为扇区的编号是从1开始计算的,mbr就是硬盘的前512字节.0磁道也就是0柱面,0磁道位与硬盘的最磁道,最外磁道的数据比较稀疏,数据可靠性高,所以用来存放关键性的代码。mbr的作用:系统在启动进入bios后,首先自检(post),然后初始化硬件(init),然后扫描硬盘启动项,扫描到启动盘后,copy前512字节到内存0x7c00,将控制原创 2015-08-18 14:08:09 · 717 阅读 · 0 评论