嵌入式
文章平均质量分 92
李易达
专业点灯10年
展开
-
ThreadX LevelX NOR闪存的open流程
ThreadX LevelX NOR闪存的open流程LevelX NOR闪存的数据管理结构LevelX NOR闪存的BlockHeader信息数据管理初始化流程LevelX 对NOR 闪存的初始化底层驱动绑定计算BlockHeader信息找到整个闪存的最大、最小擦除计数闪存第一次使用或之前完全擦除过闪存之通过LevelX使用过计算空闲扇区数异常扇区检测LevelX NOR闪存的数据管理结构 想要了解LevelX对NOR闪存的数据管理方式,首先必须要知道LevelX的管理数据在NOR闪存(NAND一样)原创 2020-10-25 18:01:34 · 979 阅读 · 6 评论 -
ThreadX LevelX简介以及对均衡磨损的理解
ThreadX LevelX简介以及对均衡磨损思想的理解ThreadX LevelX简介均衡磨损由来与实现思路ThreadX LevelX简介 Azure RTOS(ThreadX) LevelX为嵌入式应用提供了NAND和NOR闪存磨损均衡操作方式。由于 NAND 和 NOR 闪存只能被擦除有限的次数,因此均匀地分配闪存的使用至关重要。这通常被称为 “均衡磨损”,也是LevelX存在的目的。 选择要重用哪个闪存块的算法主要是基于擦除次数,但也并不完全是。如果有另一个块的擦除次数在最小擦除次数的可接受原创 2020-10-23 16:07:48 · 2164 阅读 · 0 评论 -
FreeRTOS启动第一个任务和任务的切换实现过程
FreeRTOS启动第一个任务和任务的切换实现过程此篇文章主要参考了野火的《FreeRTOS内核实现与应用开发指南》,和其他博主的一些资料并加入了一些个人理解,作为学习笔记,在此感谢火哥和其他博主;第一个任务的启动vPortSVCHandler函数开始真正启动第一个任务;上代码:__asm void vPortSVCHandler( void ){ extern pxCurrentT...原创 2019-01-09 17:52:26 · 8273 阅读 · 0 评论 -
数据读写的乒乓操作
数据读写的乒乓操作文中一部分从其他博客中学习到,加入了自己实际应用的过程。 在重要数据的解帧与处理过程中,为了确保数据的实时性与可靠性,我们一般对收到的数据存储到芯片的RAM或Flash(掉电数据恢复)中进行处理,一般对内存的读写采用乒乓的方式读写。列如Flash中空闲的两块Flash或RAM中两个不同的地址存储关键帧信息, 针对Flash 两个Bank为BankA 、BankB B...原创 2018-04-16 09:56:34 · 9328 阅读 · 3 评论 -
ioctl函数详解
注:本文转自http://blog.csdn.net/chun_1959/article/details/44851793感谢原创作者。大部分驱动除了需要具备读写设备的能力之外,还需要具备对硬件控制的能力。一、在用户空间,使用ioctl系统调用来控制设备,原型如下: int ioctl(int fd,unsigned long cmd,...); /* fd:文件描述符转载 2017-03-09 18:03:13 · 3720 阅读 · 0 评论 -
《TCP/IP详解卷2:实现》笔记--协议控制块
协议层使用协议控制块(PCB)存放各UDP和TCP插口所要求的多个信息片。Internet协议维护Internet协议控制块(internet protocol control block)和TCP控制块(TCP control block)。因为UDP是无连接的,所以一个端结点需要的所有信息都在Internet PCB中找到,不存在UDP控制块。Internet PCB含有所有UDP和TCP端结点转载 2016-11-21 15:12:42 · 823 阅读 · 0 评论 -
向量中断和非向量中断
向量中断 非向量中断向量中断与非向量中断的区别 推荐向量中断就是不同的中断有不同的入口地址,非向量中断就只有一个入口地址,进去了再判断中断标志来识别具体是哪个中断。向量中断实时性好,非向量中断简单 向量中断控制器VIC具有32个中断请求输入,可将其编程分为3类,FIQ,向量IRQ和非向量IRQ。 FIQ(fast interrpt request)快速中断请求要求转载 2016-06-14 14:08:11 · 945 阅读 · 0 评论 -
boot loader能全部用C程序编写吗
在《什么是boot loader》一文中我抛出了一个问题,这个问题如下:我们说boot loader通常采用汇编和C语言相结合来编写的,那能不能全部用C语言来进行编写呢?为什么?对于这一问题的答案是:不能。C程序中所有的代码都是以函数的形式出现的。可能有人要说在C中也可以嵌入汇编代码,能不能用这种方式来实现整个boot loader呢?再看看题目,这里只考虑所有的代码只能是以函数的形式出现。那C程转载 2016-06-13 09:27:16 · 645 阅读 · 0 评论 -
什么是Boot Loader
在嵌入式系统当中你可能经常听到 boot loader(引导加载器)这一词,boot loader是指什么呢?在我们日常经常接触的东西中是不是有与boot loader的作用或是概念相似的呢?有一点我一定猜得到,你现在正在用计算机看这篇文章。如果你稍微熟悉计算机的组成,你一定知道BIOS(Basic Input/Output System)。BIOS在计算机中就是用来启动计算系统的,在完成一定的硬件转载 2016-06-13 09:23:52 · 895 阅读 · 0 评论 -
C++ typeof基本应用方式解析
C++ typeof基本应用方式解析C++ typeof在实际编程中主要就是帮助开发人员获取表达式的值的类型,并且还能获取表达式的类型。我们将会在这里为大家详细介绍其中的内容。C++编程语言可以被看做是C语言的升级版本。它不但拥有C语言的各种特性,而且还在一些特定方面上有所改进,使得开发人员在编程中大大提高了开发效率。转载 2015-12-23 13:17:56 · 3778 阅读 · 0 评论 -
arm启动过程详解
ARM芯片的启动程序的分析和总结(2009-02-04 14:35:26)标签:杂谈 分类:ARM1、综述: 目前大多基于ARM芯片的系统都是一个比较复杂的片上系统,多数硬件模块都是可配置的,可以通过软件来设置其需要的工作状态。因此在运行用户的应用程序之前,需要由专门的一段代码来完成对系统的初始化。这一段代码就称为启动程序。转载 2015-12-22 10:57:03 · 4289 阅读 · 0 评论 -
对韦东山老师移植最新uboot的总结
一:准备移植1、从下面的官网下载最新的U-boot。用google英文版搜索最新的u-boot源码 ftp://ftp.denx.de/pub/u-boot/2、建立sourceinsight工程 a、解压并在E:\colin weidongshan\transplant_u-boot-2012.04.01\u-boot-2012.04.01建立SI b、添加文件到SI工程转载 2015-09-21 16:24:04 · 770 阅读 · 0 评论 -
几种常见排序算法的c语言实现
1)“冒泡法1” 其原理为从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换它们,一直比较到a[n]。同理对a[1],a[2],...a[n-1]处理,即完成排序。 [cpp] view plaincopyvoid bubble(int *a,int n) { int i,j,tem转载 2015-10-09 16:08:28 · 359 阅读 · 0 评论 -
嵌入式基础
1. 嵌入式存储系统1.1. 计算机组成原理从冯.诺依曼的存储程序工作原理及计算机的组成来说,计算机由运算器、控制器、存储器和输入/输出设备五大部件组成。其中运算器和控制器统称为中央处理器(CPU),而存储系统分成内部存储器(内存)和外部存储器(外存)。输入/输出设备并非计算机所必需的,如果一个设备具有CPU,内存和外存,我们就可以说它是一台计算机。在很多嵌入式设备上,都没有输入/输出转载 2015-09-18 21:44:42 · 5861 阅读 · 1 评论 -
linux 中断底半部之tasklet分析
Linux tasklet study一、 tasklet作用二、 tasklet相关的数据结构struct tasklet_struct{struct tasklet_struct *next;unsigned long state;atomic_t count;void (*func)(unsigned long);uns转载 2015-09-30 10:07:41 · 426 阅读 · 0 评论