自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风雨无阻

如需交流讨论,请关注微信公众号:【柒零玖嵌入式】留言。本文为博主原创文章,转载请注明...

原创 移植QT5.6.0到Freescale IMX6UL

欢迎扫码关注微信公众号:柒零玖嵌入式,更多嵌入式软硬件相关分享!                之前,我们设计了imx6ul板卡,硬件设计参考:https://blog.csdn.net/fengyuwuzu0519/article/details/79133851。之后在上面进行了uboot的相...

2018-04-27 17:27:59 3675 0

原创 【ALLEGRO】从零制作imx6-PCB核心板全流程

欢迎扫码关注微信公众号:柒零玖嵌入式,更多嵌入式软硬件相关分享! 一、原理图设计 创建结构目录 一般我们创建如下几个目录来组织项目代码: 制作原理图封装 画原理图前需要先做好器件原理图库,放到lib目录下。 网络标号 同页:添加 Net Alias(N) 不同页:添加...

2018-01-24 11:17:37 5860 0

原创 【实战】移植QT5.6.0到嵌入式linuxS3C2440单板

欢迎扫码关注微信公众号:柒零玖嵌入式,更多嵌入式软硬件相关分享!           目前网上关于QT5.6的移植教程还不完善,本博客详细说明QT5.6.0移植到嵌入式linux单板的详细步骤。并将移植好的分享在GitHub上。一、实验环境(1)编译工具链arm-Linux-gcc-4.4.3.t...

2017-06-12 17:36:05 3961 0

原创 【总结】嵌入式Linux学习中遇到的问题及解决方法

持续更新。。。 (1)uboot中执行nfs 32000000  192.168.1.101:/work/nfs_root/uImage_new,下载新内核时出现: TTT***ERROR:Cannot umount。如下图: 解决方法: 在linux虚拟机下输入:sudo vi  /etc/...

2017-06-01 19:34:54 2095 0

原创 【总结】嵌入式linux常用命令

这里就不分类了,用到一个直接添加一个。都是嵌入式linux开发中常用到的指令。(1)开发板挂载到虚拟机上mount -t nfs -o nolock 192.168.1.101:/work/nfs_root /mnt(2)压缩文件a目录为b.zipzip -r -q -o b.zip a(...

2017-05-12 22:55:30 942 0

原创 栈及栈溢出

1、内存空间分布 常规的内存布局,在UNIX环境高级编程中: 代码段: (code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的代码属于只读。在代码段中,字符串常量也属于这部分。整个程序的代码,以及所有的常量。这部分内存是是固定大小的,...

2020-07-05 14:51:14 18 0

原创 imx6ul上电启动过程

一、CPU上电启动 0、引入 CPU上电后如何从flash上获取程序并执行,不同厂家不同型号CPU也往往不同,但是大体是相同的:从flash上读取。从flash上读取是最传统和常规的方式,也是项目会采用的方式。 (1)各厂家的芯片如何从flash上读取程序来运行? 上电时根据某些GPIO的...

2020-07-03 21:53:08 48 0

原创 【linux驱动】USB子系统分析

一、USB基础知识 二、Linux USB驱动分析 Linux内核USB驱动,以总线(Bus)、设备(device)、驱动(device_driver)模型来完成设备驱动和设备的绑定,实现USB业务逻辑。 2.1 USB子系统框架 整个USB驱动模型可以总结为如上图,USB分为主机...

2020-02-11 11:00:05 210 0

原创 linux内核宏定义解析

1、MODULE_DEVICE_TABLE 以下来自kernel\drivers\net\phy\vitesse.c MODULE_DEVICE_TABLE(mdio, vitesse_tbl); //kernel\kernel\include\linux\module.h #ifdef ...

2019-11-30 00:24:54 69 0

原创 华为开放内核源代码

通过如下链接可以找到华为修改的Linux内核源代码: https://consumer.huawei.com/en/opensource/ 如搜索M3 Pad 工具链: https://developer.android.google.cn/ndk/downloads/index.htm...

2019-09-29 22:30:50 1584 0

原创 linux网络Netfilter与iptables技术

1、iptables基础 1.1 Netfilter与iptables引入 百度百科:Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪成为了可能。ne...

2019-08-22 22:43:58 153 0

原创 通过抓包工具抓取UDP网络通信的以太网帧数据并分析字段含义

本文主要记录使用抓包工具抓取网络数据包的过程,可以更好的理解Linux网络协议栈。 1、实验环境 一个嵌入式开发板:加载好网卡驱动程序 一台笔记本:装好抓包工具,如wireshark,装一个网络通信助手。 开发板通过直连接到PC的网口。 2、抓取UDP通信数据包 数据包包含内容如下(h...

2019-08-15 21:48:10 1340 0

原创 读书笔记《Linux那些事儿之我是USB》

第一篇:Linux那些事儿之我是USB Core USB诞生于inel 产生是为了解决前期计算机并口串口的问题,实现一种解决速度,扩展性,易用性的通信方式。 速度:usb2.0高速模式,480MB/s,USB3.0 480GB/s。 支持热拔插 USB树形结构包括:USB控制器,USB设...

2019-08-11 11:58:22 451 0

原创 嵌入式系统电源管理

1、电源管理 1.1 概述 目的: 在系统可维持正常所期望工作状态的情况下,尽可能降低功耗。Linux电源管理涉及到系统待机,频率电压变换,系统空闲处理,运行时期电源管理等多个方面。 措施: 《Linux设备驱动开发详解》一书中对电源管理的总结: 1.2 单片机 对于5...

2019-08-04 16:29:01 9071 2

原创 【linux驱动】网卡驱动程序

0、引入 前面,总结了网络模型等的相关知识(https://xingxingzhihuo.blog.csdn.net/article/details/94360079) 对于网卡驱动程序,可以不考虑网络协议多层的具体实现,而仅仅关注对网卡硬件的驱动,通过TCP/IP协议栈接口及linux网络接...

2019-07-27 23:07:08 180 0

原创 网络协议及相关知识

1、网络基础知识 1.1 网络模型 最常说的网络模型一般有 OSI七层协议模型 TCP/IP四层协议模型 TCP/IP五层协议模型 其模型如下: 网络模型 TCP/IP四层模型 TCP/IP五层模型 OSI七层模型 常见协议 典型设备 功能 ...

2019-07-27 21:26:36 924 0

原创 【imx6ul】SIM7600CE 4G模块在imx6ul linux4.15上拨号上网

1、增加USB Serial内核驱动 CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_WWAN=y CONFIG_USB_SERIAL_OPTION=y diff --git a/drivers/usb/serial/option.c b/drivers/usb/...

2019-06-23 15:21:04 1410 0

原创 linux负载率Load Average分析及负载率监测驱动的实现

0、引入 CPU负载率一定程度上反映了系统CPU的繁忙程度,且在多核cpu下与负载均衡,进程调度关系密切。实现对CPU负载率的监测有利于实现一套稳定可靠适用的系统。 1、负载率相关定义 1.1 平均负载的定义 1.1.1 Load average理解: 在特定时间间隔内运行队列中的平...

2019-06-09 11:40:43 332 0

原创 STM32单片机发送webservice结构的数据包,使WIFI模块通过http向webservice服务上传数据

1、目的 对于一些通过wifi进行数据上报的硬件产品,目前市面上大多数WIFI模块支持http,但是不支持webservice,对于项目开发来说,有些情况是软件开发了webservice接口,希望硬件通过webservice接口把数据传上来,但是硬件希望通过http上传。这样就产生了一定的不协调...

2019-05-19 14:29:18 2017 2

原创 【imx6ul】系统移植之修改LAN8720的RESET管脚

1、修改网卡LAN8720的复位管脚 1.1 uboot的修改 uboot/board/freescale/mx6ul_14x14_evk$/mx6ul_14x14_evk.c #ifdef CONFIG_FEC_MXC /* * pin conflicts for fec1 and f...

2019-04-14 18:53:04 1104 0

原创 【linux驱动】USB总线驱动框架分析

1、USB驱动引入 USB(全称 Universal Serial Bus,通用串行总线)。USB接口已经成为PC及嵌入式设备中最常用、最便捷的通信接口。Linux USB子系统较为庞大,本文主要对Linux系统下的USB总线驱动整体框架进行概述,重点的细节待后续文章展开。 首先...

2019-02-19 20:26:38 498 0

原创 04-ZYNQ学习之FPGA+Linux开发的流程

通过前面3节内容,我们知道了: Xilinx ZYNQ的内部结构 PL端FPGA的开发过程 ZYNQ启动过程及固化  那么ZYNQ包含CortexTM-A9核,那么它的ARM资源应用主要就落在嵌入式linux上。ZYNQ的嵌入式Linux开发流程是本节介绍的重点。 一、嵌入式linux开发...

2018-10-13 21:39:52 5042 0

原创 Xilinx Artix-7 FPGA 【1】之实现DEMO工程并烧写

一、主要目的 使用vivado 15.4 创建A7 FPGA工程 Verilog、约束等资源文件的编写及添加 程序的仿真 程序烧入固化 二、创建 A7 FPGA Vivado 工程 (1)选择新建工程: (2)项目名称及保存路径 (3)选择工程类型 在下面的对话框中默认选择...

2018-10-02 11:43:25 2968 0

原创 03-ZYNQ学习(启动篇)之程序的固化

上一节我们只使用ZYNQ的PL端资源,单独控制PL端的LED实现流水灯:https://blog.csdn.net/fengyuwuzu0519/article/details/54923413。但是掉电后程序会丢失,那么如何固化代码到FLASH呢?就是本节的目的了。 一、ZYNQ的启动流程 ...

2018-05-22 21:21:59 8834 2

原创 一文弄清Linux进程(下)

上一节我们初步认识了进程相关内容:https://blog.csdn.net/fengyuwuzu0519/article/details/802960431、进程间通讯    Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,...

2018-05-16 22:23:46 315 0

原创 一文弄清Linux进程(上)

1、相关概念理解1.1 程序与进程程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁....)进程,是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程)程序 → 剧本(纸)          ...

2018-05-12 23:57:41 391 0

原创 【imx6ul】U-Boot 2016.03u-boot分析之启动内核流程-ARM Cortex-A7

    前面我们分析了uboot的配置过程、编译过程、执行流程、解析了main_loop()函数、分析了uboot的命令结构。今天我们进一步分析uboot是如何启动内核的,也就是do_bootm/ do_bootz具体做了哪些事。    U-Boot环境变量如下。main_loop函数中会获取bo...

2018-03-14 21:00:15 2160 2

原创 【imx6ul】U-Boot 2016.03u-boot分析之U_BOOT_CMD命令实现-ARM Cortex-A7

uboot命令分析    U_BOOT_CMD是一个宏定义,功能是定义一个struct cmd_tbl_s的结构体变量,并将其存放到uboot没有被占用的section中。U_BOOT_CMD宏传递的参数是该结构体变量的成员变量。通过U_BOOT_CMD定义的变量会通过脚本链接到uboot指定的一...

2018-03-12 23:19:43 1431 2

原创 【imx6ul】U-Boot 2016.03u-boot分析之main_loop函数-ARM Cortex-A7

uboot的最终目的是引导内核,在此之前uboot需要完成一系列初始化操作,包括设置时钟、初始化DDR、Flash、串口、网卡等等,这时uboot有两条路走(1)通过按键,触发uboot进入命令行模式,等待处理命令。(2)引导内核。具体选择走哪个路,怎么走。main_loop将告诉我们。main_...

2018-03-11 12:56:31 1154 0

原创 【imx6ul】U-Boot 2016.03执行过程分析-ARM Cortex-A7

uboot组织架构正在朝着linux架构方向发展,不同版本稍有不同,一下以U-Boot 2016.03为例。分析入口:以u-boot.lds(其决定了各个段的排布方式)开始:1、u-boot.lds://设置输出文件大小端格式 OUTPUT_FORMAT("elf32-littlearm...

2018-03-04 22:34:15 2794 0

原创 【imx6ul】U-Boot 2016.03的make xxx_defconfig配置过程分析

背景:U-Boot作为遵循GPL条款的开放源码项目,目前已经占据了嵌入式Linux的大部分应用场合。内核是通过Bootloader来引导的,Bootloader最常用的是U-Boot。2015以后发布的U-Boot版本开始参考Linux内核的Kconfig结构,发生了较大的变化。查看U-Boot的...

2018-02-03 20:28:29 2192 0

原创 【ALLEGRO】DRC错误代码

代码 相关对象 说明 单一字符代码 L Line 走线 P Pin 元件脚 V ...

2018-01-11 10:53:33 2918 0

原创 MAX422与422转USB及485的接线方法

对于仅使用 485,T/R+接A T/R-接B

2018-01-02 17:26:31 2243 0

原创 【ARM裸机】 - GCC编译流程&Makefile&动静态库

一、编译流程及GCC选项 1.1、编译流程包括: 预处理(.i)->编译(.s)->汇编(.o)->链接(可执行文件) 1.2、gcc编译选项: gcc [选项] 文件名 gcc常用选项: -v:查看gcc编译器的版本,显示gcc执行时的详细过程 -o ...

2018-01-01 21:41:07 853 0

原创 【Linxu内核设计与实现】-第7章 中断和中断处理

第7章 中断和中断处理 操作系统的核心任务之一-对连接上的硬件进行管理(硬盘、键盘、鼠标等)。要想管理这些硬件,就需要可以和他们进行通信。硬件的反应要远远慢于CPU,轮询会耗费大量CPU资源,显然不适合,那就是通过中断机制来实现。 7.1 中断 (1)中断本质上是一种特殊的电信号...

2018-01-01 16:20:11 350 0

原创 【Linxu内核设计与实现】-第6章 内核数据结构(待续...)

第6章 内核数据结构 介绍几种Linux内核常用的内建数据结构,Linux内核实现了这些数据结构,提倡大家开发时重用,其中包括: 链表队列映射二叉树 之后有介绍算法复杂度。 6.1 链表        链表是Linux内核中最简单、最普通的数据结构。存放可变数量元素(节点)的数据结构。 特点...

2018-01-01 15:40:29 238 1

原创 【ARM裸机】 - 重定位

1、 重定位的目的        对于2440上电后,分两种情况,从nor启动,直接从nor作为0地址,开始在nor中运行。从nand启动,拷贝前4K到片内SRAM中。当代码大于4K的时候,我们需要重定位代码到更大的SDRAM中去运行。从nor运行时,由于nor只可读而不可以修改nor中的内容,...

2017-12-30 22:01:54 581 0

原创 【ARM裸机】 - 中断与异常

中断与异常 1、中断控制器 一个事件的处理往往有两种方式: 中断方式轮询方式 轮询方式比较简单,在死循环中没隔一定时间,进行一次判断事件是否发生,比较耗费资源。 中断方式相对复杂一点,但是节省资源,往往通过硬件触发中断,然后执行中断处理程序。 2、ARM中对异常的使用 (1)    ...

2017-12-28 20:54:48 334 0

原创 【Linxu内核设计与实现】-第5章 系统调用

第5章 系统调用 用户进程与内核交互的接口,使应用程序受限的访问硬件设备,提供了创建新进程并与已有进程通讯的机制,也提供了申请操作系统其它资源的能力。应用程序发出请求,内核来满足这些请求,或者返回一个错误。 5.1 与内核通信 (1)    系统调用在用户空间和硬件设备之间添加了一个中间层 ...

2017-12-25 16:23:04 321 0

原创 【Linxu内核设计与实现】-第4章 进程调度

第4章 进程调度 主要内容 (1)进程调度:是确保内核稳定工作的一个内核子系统。在可运行态进程之间分配有限的处理器资源的内核子系统。 (2)作用:进程调度决定将哪个进程投入运行,何时运行,运行多长时间。 (3)效果:通过合理的调度,系统资源才能最大限度的发挥,多进程才会有并发执行的效果。 (4)...

2017-12-21 21:21:46 234 0

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