• 等级
  • 71201 访问
  • 24 原创
  • 22 转发
  • 62707 排名
  • 23 评论
  • 28 获赞

程序编译的4个过程

0.引言 hello.c(源程序)是一条高级C语言程序,虽然它是以一种易读的形式,让人们容易理解。但是,它却无法直接驱动硬件CPU直接执行。为了我们编写的hello.c程序可以被执行,驱动硬件电路工作,hello.c程序必须经过一些列处理步骤,将源程序转化为可执行性的目标程序。 而我们知道,机器语言就是处理器可以直接理解(与生俱来就能理解)的编程语言,机器语言有时也被叫做原生代码(Native ...

2019-01-11 15:00:11

15765协议剖析

ISO 15765 网络层协议分析 ISO 15765 网络层的功能主要有: (1)为上层的应用层提供接口服务。 (2)进行内部操作。为上层服务提供接口从而实现数据交流;主要有为对等实体间的通信提供分段、重组和流控制这几种方法方法。 (3)网络层中的时间控制。   网络层原语服务分析 对于为上层提供服务,网络层一共定义了以下 3 个原语服务   通过这三种原语服务可以与上层服...

2018-12-28 10:42:16

Vector诊断系统开发流程及其工具链

1、制定诊断规范(需求、协议)--------------CANdelaStudio将诊断规范转化为诊断数据库文件cdd,是整个流程的核心; 2、软件代码实现--------------------将诊断规范形成诊断代码; 3、诊断功能验证-------------------CANDiva进行诊断功能自动验证,自动生成测试用例。测试诊断规范在ECU中的实现和集成情况; 4、诊断测试----...

2018-12-27 10:28:38

The Data Types of AUTOSAR(数据类型)

AUTOSAR规定了以数据类型的方式通过Port传递数据。这些数据类型以不同的抽象级别被定义: (1)应用数据类型:从应用逻辑的角度描述数据。计算公式(算法)描述了从物理(值)范围到内部数字(位)级别的映射关系。SWC中的数据类型映射定义了实现数据类型和应用数据类型之间的映射关系。 (2)实现数据类型:被SWC和RTE所使用。AUTOSAR定义了一些标准的数据类型,如uint8/uint16等...

2018-12-17 16:35:38

Port类型

SWC的AUTOSAR Interface是通过Port定义的。如下几种不同的Port对应于不同的功能: (1)SWC通过Sender-Receiver Ports接收或者发送数据。 (2)SWC通过Client-Server Ports实现或者调用服务(操作)。 (3)Parameter Ports定义的数据可作为ECU的标定数据,这些数据可以被多个SWC访问。 (4)Non-volat...

2018-12-17 13:09:10

AUTOSAR方法论剖析

AUTOSAR方法(也被称为AUTOSAR方法论)描述了可以被遵循的工作流程,这一流程包含了从系统配置到最终ECU执行代码的生成。 下图中用工作行为和工作产品描述了这一工作流程。 专用的AUTOSAR工具(比如DaVinci Developer和DaVinci Configurator Pro)可以支持相应的工作行为。 为了在不同的工具中交换工作产品,AUTOSAR定义了一个缜密的XML文件...

2018-12-13 14:59:48

AUTOSAR系统设计

由于AUTOSAR的分层模型,因此我们可以在不考虑具体ECU的情况下进行ECU或者车辆的功能设计。此时,ECU被看作一个由相互联系的软件组件所组成的系统。 每个SWC的接口都被正式定义了。Sender/Receiver ports用于规定SWC的输出或者输入数据,Client/Server ports用于规定SWC需要的或者提供的服务。SWC的实现架构也通过运行体被正式定义,它们在特定事件发生时...

2018-12-13 10:47:01

AUTOSAR分层模型

在AUTOSAR中,ECU软件被抽象分类为基础软件(BSW)、运行时环境(RTE)和应用层(ECU功能实现,SWC)。基础软件主要包含了标准的软件模块,也集成了特殊的固定,如复杂驱动。 微控制器抽象层(MCAL)包含了跟硬件相关的驱动程序,可以用来访问内存、通信和I/O等。 ECU抽象层负责提供统一的访问接口实现对通信、内存或I/O的访问,从而无需考虑这些资源由微处理器提供还是由外部设备提供,...

2018-12-13 10:30:16

Interface Definition within AUTOSAR(AUTOSAR接口剖析)

AUTOSAR接口定义 下图显示了SWC之间、SWC与BSW之间如何使用不同的接口进行通信: (1)AUTOSAR Interface是一种与应用相关的接口,与RTE一并生成。基于AUTOSAR Interface的端口可以用于SWC之间、SWC与ECU固件(I/O、Complex Drivers)之间的通信。 (2)Standardized Interface是AUTOSAR标准中用C语言...

2018-12-13 10:05:35

AUTOSAR的现状和利弊

  利 篇 做AUTOSAR项目一段时间了,做完了几个基于AUTOSAR架构的控制器软件项目,也完成了符合功能安全ASILC的AUTOSAR架构的软件平台。 在做这些项目的过程中,通过项目招标,供应商考察,对比同行以及自己亲自实施的情况,对AUTOSAR国内外的使用情况有了一些了解,分享一下自己的看法,也希望能有同行一起讨论和交流,算是抛砖引玉,废话不多说,各位施主请轻拍。 AUTOS...

2018-11-22 10:40:27

linux内核解析

1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。 注:本文和其它的“Linux内核分析”文章都基于如下约定:   a) 内核版本为Linux 3.10.29(该版本是一个long term的版本,会被Linux社区持续维护至少2年...

2018-11-21 15:16:22

linux设备驱动原理与本质

任何计算机系统都是软件和硬件的结合体,如果只有硬件而没有软件,则硬件是没有灵魂的躯壳;如果只有软件没有硬件,则软件就是一堆无用的字符。在底层硬件的基础上,操作系统覆盖一层驱动,屏蔽底层硬件的操作,通过特定的软件接口去操作底层硬件,用户在用户空间可以很容易的把软件设计目标放在策略与需求上,可以很方便的屏蔽掉底层实现,从而很好的完成客户功能需求。计算机系统是软件和硬件的结合体。而软件又分为应用层软件和...

2018-11-20 17:06:55

浅谈设备驱动的作用与本质,有无操作系统Linux设备驱动的区别

  一、驱动的作用 任何一个计算机系统的运行都是系统中软硬件协作的结果,没有硬件的软件是空中楼阁,而没有软件的硬件则只是一堆废铁。硬件是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑与时序逻辑;软件则实现了具体应用,它按照各种不同的业务需求而设计,满足了用户的需求。硬件较固定,软件则很灵活,可以适应各种复杂多变的应用。可以说,计算机系统的软硬件互相成就了对方。 但是,软...

2018-11-20 16:55:04

Linux GCC生成可执行程序的4个步骤——预处理、编译、汇编、链接

一,预编译 操作步骤:gcc -E hello.c -o hello.i 主要作用: 处理关于 “#” 的指令 【1】删除#define,展开所有宏定义。例#define portnumber 3333 【2】处理条件预编译 #if, #ifdef, #if, #elif,#endif 【3】处理“#include”预编译指令,将包含的“.h”文件插入对应位置。这可是递归进行的,文件内...

2018-11-16 15:00:52

一个程序的内存分配原则、堆和栈的本质及对比

一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分  1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。  2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。  3、全局区(静态区)(stati...

2018-11-15 13:48:48

浅谈14229协议

本篇文章主要介绍基于ISO14229的DCM模块的理解。 阅读本篇文章希望达到的目的是: UDS是干什么的, ISO14229是如何定义规则的,   希望接下来的阅读让你不虚此行。   1. UDS是干什么的? UDS全称是Unified Diagnostic Services,即 统一诊断服务。其最重要的作用就是用来诊断汽车的故障的,当然不仅仅是这个用处,它还可以用来进行汽车的下...

2018-08-30 18:55:09

VIM的常用配置

花了很长时间整理的,感觉用起来很方便,共享一下。 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试 2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改 3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码 4.按“F...

2018-08-29 22:34:06

AUTOSAR架构概述

                                    AUTOSAR整体思路概述 一、总体概述 AUTOSAR是Automotive Open System Architecture(汽车开放系统架构)的首字母缩写,是一家致力于制定汽车电子软件标准的联盟。AUTOSAR是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立,各成员保持开发合作伙伴关系。自200...

2018-08-12 13:33:07

Tkinter-Text控件常用功能示例

简介及简例 Text 控件用来显示多行文本. Tkinter 的 Text 控件很强大, 很灵活, 可以实现很多功能. 虽然这个控件的主要用途是显示多行文本, 但其还可以被用作简单的文本编辑器, 甚至是网页浏览器.  Text 控件可以显示网页链接, 图片, HTML页面, 甚至 CSS 样式表.  在其他的各种教程中, 很难找到一个关于 Text 控件的简单例子. 这也是我们写这一章教程的主要...

2018-07-24 08:16:05

嵌入式C编码规范

0规范制定说明 0.1箴言 技术人员设计程序的首要目的是用于技术人员沟通和交流,其次才是用于机器执行。程序的生命力在于用户使用,程序的成长在于后期的维护及根据用户需求更新和升级功能。如果你的程序只能由你来维护,当你离开这个程序时,你的程序也和你一起离开了,这将给公司和后来接手的技术人员带来巨大的痛苦和损失。因此,为了程序可读、易理解、好维护,你的程序需要遵守一定的规范,你的程序需要设计。 “...

2018-07-23 08:28:21

GavinChen-ED

关注
  • 嵌入式
  • 中国 上海 浦东新区
奖章
  • 持之以恒