嵌入式
文章平均质量分 85
注释远方
往前看并且坚持、勇敢
展开
-
版本管理——字符串转CAN报文输出
工程达到ASPICE 1级以上后可以试着一个工程适配不同项目,此时面对不同项目将输出不同的软件版本,管理好版本输出显得尤为重要!首先在不同的客户文件夹下建立app_version.txt,用于每次代码提交修改版本号在mk文件中定义版本号,并通过宏定义传到编译参数命令行宏中#version= 2.3.0.0endif。原创 2022-10-11 15:47:21 · 930 阅读 · 0 评论 -
嵌入式系统及应用——同步互斥和通信
一、概述与信号量多任务系统中任务之间/任务与中断服务ISR的关系是相互独立:仅竞争CPU资源 互斥:竞争除CPU之外的其他公共资源(任务间互斥的是全局变量或者共享内存) 同步:协调彼此运行的步调,保证协同运行的各个任务具有正确的执行次序 通信:彼此间传递数据或信息,以协同完成某项工作1.1 概述 同步(通信)的基本方式:分为任务与任务,任务和中断之间进行同步通信。通信分为单向和双向,双向之间的通信仅存在任务之间,因为ISR不可以进行等待 。 ...原创 2021-08-30 10:57:22 · 364 阅读 · 0 评论 -
嵌入式系统及应用——任务管理与调度
一、任务概述1.1进程与线程 进程主要包括下面内容:是一个正在执行的程序,可以分配给处理器,并由处理器执行的一个实体;由一个顺序的执行线程、一个当前状态和一组相关的系统资源所刻画的活动单元。 进程由代码、数据、堆栈和进程控制块PCB构成。进程控制块包含了操作系统用来控制进程所需要的信息,包括进程状态、调度信息、CPU寄存器信息、内存管理信息和IO状态信息。 早期进程定义是(资源)资源分配的基本单位,一个进程包括一个保存进程印像的虚拟地址空间、...原创 2021-08-10 22:13:28 · 666 阅读 · 0 评论 -
嵌入式系统及应用——OS及开发工具
一、二、原创 2021-08-07 10:05:45 · 2024 阅读 · 2 评论 -
嵌入式系统及应用——bin/hex/srec烧录文件
一、前言 HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身。在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。bin:二进制文件没有”格式”,文件只是包括了纯粹的二进制数据hex:HEX文件都是由记录(RECORD)组成的,在HEX文件里面,每一行代表一个记录。HEX文件是用ASCII来表示二进制的数值。例如一般8-BIT的二进制数值0x3F,用ASCII来表示...原创 2021-07-21 11:55:45 · 1317 阅读 · 0 评论 -
嵌入式系统及应用——实战MK/C/RTOS
一、前言二、makefile2.1 宏定义-D-D macro=string,等价于在头文件中定义:#definemacrostring。例如:-D TRUE=true,等价于:#defineTRUEtrue-D macro,等价于在头文件中定义:#definemacro1,实际上也达到了定义:#definemacro的目的。例如:-DLinux,等价于:#defineLINUX1(与#defineLI...原创 2021-06-19 21:46:13 · 215 阅读 · 2 评论 -
嵌入式系统及应用——软件系统
一、概述 软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据和文档。程序是按照事先设计的功能和性能要求执行的指令序列。数据是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料; 软件产品的特点是一种逻辑实体,具有抽象性。软件没有明显的制造过程。使用过程中没有磨损老化;软件对硬件和环境有着不同程度的依赖性,导致了软件移植问题。软件开发大部分需要手写生产效率低。成本昂贵,涉及到诸多因素影响。 嵌入式软件规模小,但开发难度...原创 2021-06-19 21:43:30 · 282 阅读 · 0 评论 -
嵌入式系统及应用——存储
一、概述 嵌入式存储体系分为三种:高速缓存(cache)、主存及外存。片内存储一般都会集成Cache,片内的RAM和ROM,片内的RAM和ROM由于成本的制约不会太大,大多数的主存空间都是放在片外的,在片外除了主存还有外存。主存中主要放置常数数据和code。外存成本低,容量大。二、高速缓存Cache 高速缓存器是为了加速CPU对主存的读写操作速度。Cache在嵌入式系统中是集成在片内的,而在计算机中cache是片外的。高速缓冲存...原创 2021-06-13 15:54:38 · 200 阅读 · 2 评论 -
嵌入式系统及应用——总线
三、系统总线嵌入式系统总线可分为片内总线,片外并行总线,片外串行总线;片内总线的选择取决于CPU核,片外总线选择取决于应用片内总线是与嵌入式微处理器集成在一起,如AMBA,AVALON,OCP,WISHBONE 片外并行总线:如PCI,ISA等 片外串行总线:UART,SPI,I2C,USB 等3.1 片上总线AMBA(Advanced Microcontroller Bus Architecture)是ARM公司研发的一种总线规范,在规范里定义了高速总线AHB、AS...原创 2021-06-13 12:29:53 · 259 阅读 · 0 评论 -
嵌入式系统及应用——SOC分类
一、基本构成嵌入式系统的硬件以包含SOC为核心,主要由SOC、总线、存储器、输入/输出接口、IO设备组成二、嵌入式微处理器SOC每个嵌入式系统至少包含一个嵌入式微处理器,体系结构可以采用冯诺依曼结构或者哈佛结构。冯诺依曼结构:指令地址和数据存储到同一块内存空间,取指令和取数据操作通过统一总线访问,不能并行哈佛结构:分为数据存储器和程序存储器,因此数据和指令的操作采用两个独立的总线,可以并行使吞吐量提高一倍 指令集分为RISC(Red...原创 2021-06-13 12:14:59 · 3071 阅读 · 0 评论 -
嵌入式系统及应用——概述
一、前言看得见的计算机:台式机或者笔记本主要由显示器,主机,键盘鼠标等标准件构成,软件可按照用户需要安装和卸载。嵌入式系统定义:看不见的计算机,一般不能被用户编程(固化),它有一些专用的I/O设备,对用户的接口是应用专用的,通常将嵌入式计算机系统称为嵌入式系统。嵌入式系统以应用为中心,以计算技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统包括软件和硬件组成:硬件包含微处理器的SOC为核心集成存储器和系统专用的输入输出设备;软件...原创 2021-05-23 11:46:55 · 564 阅读 · 5 评论 -
C# 委托——轻松控制控件
目录一、前言二、实例一、前言废话少说,快上代码C# 干货全解_qinze5857的博客-CSDN博客二、实例DegtThd.csnamespace wpfConsoleApp{ public class DegtThd { //在线程的cs文件中声明一个委托 public delegate void SetTextCallback(string text); public SetTextCa.原创 2021-05-18 14:07:18 · 652 阅读 · 0 评论 -
常用开发工具基本操作——CCS, VSCode, CANoe,Matlab,QT
一、如何忽略C/C++红色错误波浪线?答:打开vscode的设置选项(File -> Preferences -> Settings)搜索栏输入 squiggle, 将出现的 Error Squiggles 选项改为 Disabled二、如何优雅的编辑,编写时带有特效,火焰、冰块、烟花?答:安装Power Mode插件三、C/C++老实自动更新还更新不成功,烦死个,咋办?答:离线下载安装包,然后Ctrl+shift+P ,Extensions:install fr...原创 2021-05-18 09:09:37 · 2776 阅读 · 0 评论 -
C# 干货全解
一、前言二、C#语言三、控件基本使用C#对内部成员访问和结构体一样都是使用“.” , 不可以使用->。button可以触发Click事件。一般使用MouseUp鼠标弹起事件来替代Click事件,因为Click事件的触发条件比较特殊,而鼠标弹起则每次都会触发。TextBox允许运行中由用户修改即可以通过键盘删减文本内容,如果将Multiline设为True,那么TextBox便支持多行显示;TextBox的方法最常用的是AppendText方法,将...原创 2021-05-07 16:36:03 · 2231 阅读 · 0 评论 -
embARC和IP核是什么?
目录一、embARC是什么?二、IP核又是什么?一、embARC是什么?embARC: 嵌入式架构微处理器,是新思科技synopsys的产品。 ARC架构处理器是新思科技Synopsys公司推出的32位RISC系列IP。ARC处理器的IP产品线覆盖了从低端到高端各个领域。ARC架构处理器以极高的能效比见长,出色的硬件微架构使得ARC处理器的各项指标均令人印象深刻。ARC处理器IP以追求功耗效率比和面积效率比最优化为目的。 embARC将架构分为底层硬件指令集,硬件抽象层(硬件...原创 2021-04-19 16:19:47 · 608 阅读 · 1 评论 -
让工程设计的优雅起来——设计模式
一、前言当你开发过很多项目但都是在别人定义的框架接口下编程,有一天你会想if-else之外的世界是怎么样的;怎么能自己在工程项目中写出比较好的接口框架(合理的解决方案)设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些思想是具备通用性的。框架、设计者模式、架构?设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代...原创 2021-03-28 21:59:15 · 405 阅读 · 0 评论 -
代码静态检测——QAC
一、前言二、QAC构建三、QAC常见报警3.1 Msg(2:4700) metric value out of threshold range: STCYC=22:STLIN=307:STMCC = 48;函数内执行的代码行数少于5,比如一个函数中只有if-else if...或者switch-case3.2 Msg(2:4304) An expression of 'essentially Boolean type'is being cast to unsigne...原创 2021-02-21 12:27:46 · 11231 阅读 · 0 评论 -
工程项目中异常分析与解决
目录一、异常分析二、异常解决一、异常分析二、异常解决根据记录的trace/log和上述分析思路(从硬件到软件,从外因到内因)进行尝试bug复现 如果是外因就再对外设进行上述异常分析 如果是内因,查看异常相关条件和场景,设置场景标志位进行修复(考虑是否会影响其他模块) 对于时序问题导致的异常,有可能无法解决(硬件性能),如果可以,使用timer定时只要RootCause找到,一般异常都可以解决。...原创 2021-02-09 14:54:58 · 555 阅读 · 0 评论 -
数字信号处理13——Mailbox通信
目录一、SYS/BIOS mailbox二、AWX1843 mailbox前言:说到mailbox不得不提共享内存区域,它是不同核间数据传输通信的一种方式。Mailbox作为多处理器系统中处理器间进程同步和数据交换的硬件机制,其优点是应用相对的广,速度快。采用Mailbox的方式,主要是通过传输控制信息的方式进行多处理器通信。根据系统要求,可以定义不同的Mail来实现系统行为。例如:可以定义固定流量的数据传输,也可以定义固定区块的数据传输。通信双方的数据传输,属于片内并行数据传输,因此实时原创 2020-11-27 21:54:30 · 15330 阅读 · 0 评论 -
线程云集(四)——嵌入式任务线程(xwr1843)
Task有5种状态分别是运行running, 就绪Ready,阻塞blocked, terminated终止,inactive停用;前面的状态好理解,停用表示将优先级设为-1,该task不会工作直到其它task将其优先级上升。并发是将处理器从一项任务切换到另一项任务实现的通过调用某些Task函数以及由信号量或事件模块之类的其他模块提供的函数来暂停当前任务的执行。当前任务还可以终止其自身的执行。 无论哪种情况,处理器都将切换到可以运行的最高优先级任务。xwr1843存在3个线程: H...原创 2020-08-14 16:34:09 · 1011 阅读 · 0 评论 -
单片机内存及运行原理
一、单片机构成:二、CPU的作用三、内存管理 首先单片机的内存可以大小分为ram和rom,这里就不再解释ram和rom的区别了,我们可以将其等效为flash和sram,其中根据flash和sram的定义可得,flash里面的数据掉电可保存,sram中的并不可以,但是sram的执行速度要快于flash,可以将单片机的程序分为code(代码存储区)、RO-data(只读数据存...原创 2019-08-15 20:39:34 · 17135 阅读 · 4 评论