自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 imx8mq-evk快速启动-bootloader时间优化(eMMC启动)

一、imx8mq的bootloader分析关于imx8mq的bootloader系列,可以参考前面的三篇文章imx8mq - u-boot-spl启动分析imx8mq - bootloader编译过程imx8mq - u-boot启动分析Bootloader的启动流程图nxp提供的imx8mq启动方式Bootloader方式如上图所示。其中:Power on sequenc...

2019-08-08 23:00:30 3791

原创 imx8mq-evk快速启动-方案讨论,准备工作

一、优化启动时间的流程1、系统启动流程:先使用nxp提供的系统方案启动系统。分析系统启动流程。优化启动时间工作在验证系统必须功能正常的前提下进行。系统可以独立下载源码进行编译,也可以通过yocto工程构建。本次优化启动时间的优化目标为冷启动到进入界面的启动时间为3秒。2、优化思路二、启动快速启动裁剪原则从优化的最后一步开始进行优化先不要一开始就裁剪掉那些可以帮助我们判断和测量那些...

2019-05-28 23:35:45 7382 1

原创 imx8mq - bootloader编译过程

一. bootloader源码准备和编译先准备以下几个压缩包,可以独立下载压缩包,也可以通过yocto工程获取l@l:/work/imx8mq-sdk/bootloader$ ll总用量 18480drwxr-xr-x 4 l l 4096 6月 7 2018 firmware-imx-7.4/-rwxrwxrwx 1 l l 2613383 5月 10 09:55...

2019-05-28 22:26:36 6404 4

原创 imx8mq - u-boot-spl启动分析

Step 1: _start:保存一下32个64位寄存器到rom_pointer上设置小端字节序,关闭MMU,I/DCACHE,设置缓存一致性修复内核勘误bug使无效Cache/BPB/TLB低级初始化,spl不作处理转_mainCode in arch\arm\cpu\armv8\start.S_start: /* Allow the board to save im...

2019-05-28 22:25:09 3596 1

原创 RT-1052学习笔记(4)FlexRAM

FlexRAM框架FlexRAM意为高度可配置RAM门列阵。这个东西把内部集成的512KBRAM平均分成了16个bank,每个32KB。FlexRAM可以把他们配置成三张模式之一:ITGM,DTIM,OCRAMITCM:指令紧耦合RAM。与内核同频运行,通过64-bit的I-TCM总线访问,用来存放指令DTCM:数据紧耦合RAM。与内核同频运行,通过2*32-bit的D0/D1-TCM...

2018-12-19 11:21:50 4673 2

原创 RT1052学习笔记(1)- FlexSPI启动

这篇文章分析RT1052芯片从FlexSPI上电启动到执行第一条指令的全过程设置RT1052从FlexSPI启动FlexSPI的初始化流程fuse 没有被设置BOOT_MODE[1:0] = 00b or 10b -> Internal Boot ModeBOOT_CFG1[7:4] = 0000b -> Serial NOR boot via FlexSPI...

2018-12-17 19:31:34 6948 3

原创 RT-1052学习笔记(5 )- GPIO架构分析

前提提一句,i.MX RT1052与imx6ul的很多片内外设的架构长的都是一样的。分析GPIO的外设框架橙色部分:由IOMUX控制,负责控制IO口的输入输出使能,上下拉或者开漏,保持,驱动能力,压摆率,带宽,HYS滞后使能输入。这部分通过配置IOMUX控制。 红色部分:配置橙色部分的功能,以及选择这个IO到底被谁用,通过MUX寄存器选择。还包括一个在输出的同时还可以读取IO电平的使...

2018-12-13 20:01:51 4704

原创 RT-1052学习笔记(3 )-分散加载文件

复习MDK链接加载程序过程例子:各种数据所存放的段#define DATA (0x10000000) /* RO-Data */ char const GcChar = 5; /* RO-Data */char GcStr[] = "s...

2018-12-11 00:51:44 5916

原创 RT-1052学习笔记(2)-Cortex-M内核启动文件_main分析

这篇文章梳理了RT1052的启动过程从Reset_Handler直至main问题:分析RT1052启动流程的时候,卡在分散加载文件在启动的时候到底是怎么调用的。结果把问题点盯在启动文件的_main函数中。 可能自己比较菜吧,死活找不到这函数的定义。没办法,分析试着分析一下map文件。起码map文件中有一些链接信息 __Vectors_End ...

2018-12-11 00:50:38 3449

原创 C语言中不常用却很实用的用法

C语言中不常用却很实用的用法“##”连字符例子:#define LWIP_MEMPOOL(name,num,size,desc) MEMP_##name,解析:上面宏定义中的“##”为连接符,用于连接两个Token为一个Token。上面宏在使用时有LWIP_MEMPOOL(RAW_PCB, MEMP_NUM_RAW_PCB, sizeof(struct raw_pcb), "RAW_...

2018-11-29 16:06:25 365

原创 Qt多线程同步方式:QSemaphore,QWaitcondition和 QMutex三种方式实现

一、目的在Qt多线程程序开发中,经常会碰到一个线程需要阻塞等待一个资源或者一个事件发生。或者需要与另一个线程进行同步。基于以上需求,下面用QSemaphore,QWaitcondition和 QMutex三种方式实现线程的同步运行。 二、设计#include <QApplication>#include <QThread>#include <...

2018-09-07 11:21:58 1169 1

原创 问题记录setStyleSheet:Qt样式表频繁设置导致CPU占用过高问题

一、问题APP控件:QWidget:主窗口,背景利用setStyleSheet设置,同时重写paintEvent事件(QWigdet的paintEvent默认为空):void mainWidget::paintEvent(QPaintEvent *event){ QStylePainter painter(this); QStyleOption opt; o...

2018-09-07 11:18:40 5450

原创 STM32 利用DMA和串口空闲中断实现不定长收发数据包

一、设计目的:利用STM32的一组串口配合DMA实现不定长数据包收发。二、贴代码要点:1、DMA收发配置为单次触发。每次使用都需要重新设置一下计数值。2、串口空闲中断中,需要关闭串口的DMA请求,退出中断函数时再重新打开。在中断服务函数中。不再接收串口数据。3、再中断服务函数中。再读一次数据寄存器。确保下次打开DMA请求时不引入错误的数据#include "bsp_u...

2018-07-31 14:57:07 1479 2

原创 Linux串口编程,实现不定长收发数据包

参考:Linux下串口通信详解https://blog.csdn.net/specialshoot/article/details/50707965https://blog.csdn.net/specialshoot/article/details/50709257一、需求:需要利用串口对两台设备进行数据交互。要求:数据包大小不定。能够实现阻塞读取每一个数据包。粘包,丢包问题在...

2018-07-31 14:26:56 5644 3

空空如也

空空如也

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

TA关注的人

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