解析S3C2440第一个C程序的内部机制

为什么在调用C程序时,要在汇编(.S)文件中设置栈指针sp(Stack Pointer) r13?还有设置栈指针的时候赋的值是多少时如何确定的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.text
.global _start

_start:

/* 设置内存: sp 栈 */
ldr sp, =4096 /* nand启动 */
// ldr sp, =0x40000000+4096 /* nor启动 */

/* 调用main */
bl main

halt:
b halt

阅读全文

有限状态机,

有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机,又称状态转移图,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

有限状态机可以将复杂的逻辑简化为有限个稳定状态,在稳定状态中判断事件。其中有限不是指有限次处理,而是有限个稳定状态,并且有限状态机是一个闭环系统,可以用有限的状态处理无尽的事务。

阅读全文

用状态机原理进行软件设计——FSM概念

FSM 定义

总的来说,有限状态机系统,是指在不同阶段会呈现出不同的运行状态的系统,这些状态是有限的、不重叠的。这样的系统在某一时刻一定会处于其所有状态中的一个状态,此时它接收一部分允许的输入,产生一部分可能的响应,并且迁移到一部分可能的状态。

阅读全文

汽车控制器(ECU)统一诊断服务基础知识

统一诊断服务简介

统一诊断服务,Unified diagnostic services(UDS)
UDS由ISO-14229系列标准定义,
ISO 14229-1定义了诊断服务,不涉及网络及实现,只有应用层的内容。
ISO 14229-3则定义了UDS在CAN总线上的实现。

阅读全文

LIN学习——LIN总线诊断的实现

LIN总线诊断的实现

LIN总线是针对汽车分布式电子系统而定义的一种低成本的串行通讯网络,是对控制器区域网络(CAN)等其它汽车多路网络的一种补充,适用于对网络的带宽、性能或容错功能没有过高要求的应用。LIN总线是基于SCI(UART)数据格式,采用单主控制器(Master)/多从设备(Slave)的模式,是UART中的一种特殊情况。

阅读全文

汽车ECU诊断基本概念

ECU(Electronic Control Unit)是电子控制单元的简称。从用途上来说就是汽车专用的微型计算机。现代汽车的功能越来越丰富,汽车上的各个子系统都需要功能强大的ECU来控制本系统的工作。

ECU的功能从逻辑上来说分为3种,分别是:

逻辑控制功能。简单地说,就是ECU从传感器或者总线上获得输入信号,经过一系列的运算之后通过执行器将动作输出。这是ECU最基本最原始的功能。

阅读全文

CAN诊断基础知识

  • 客户端(Client)——诊断请求的提出者– Tester(诊断仪),发送诊断请求
  • 服务器端(Server)——诊断响应的提供者– 某个ECU,发送诊断响应
  • 远程客户端/服务器(Remote Client /Server)
    ❖ 与Server (Client) 不在同一“网段”

阅读全文

no-title

LIN应用层

LIN应用层提供信号处理、配置、识别和诊断四项功能。配置、识别和诊断功能又包含若干项目,称为服务(Service)。为了区别,每项服务都有固定、唯一的服务代号(Service ID, SID)。

阅读全文

LIN学习——工作流

节点性能文件

节点性能文件(NCF)定义了节点名称和节点的属性值,包括产品代号、位速率、帧的定义等信息。 LIN子网设计工具收集到节点性能文件的信息,自动生成 LIN 描述文件(LDF)。 LDF 包含了整个子网的信息,包括所有的信号和帧的声明,以及进度表等信息。 LDF 文件还可以作为调试时总线分析仪和仿真器的输入。 LIN 子网生成工具根据 LDF 生成各种通信驱动,可以建立起通信子网,也可以将具备节点性能文件的现成节点加入到已经建立好的通信子网中,并在网络进入运行前排除掉可能产生的冲突。

阅读全文

no-title

LIN API

LIN 规范用 C 语言定义了 LIN 的 API,但未定义 API 的内部实现。
LIN 协会规定:对于采用 LIN 规范 2.x 版的 LIN 节点,如果用 C 语言开发应用程序,那么就必须使用 API,
对采用 LIN 规范 1.x 版的 LIN 节点,可以不使用标准规定的 API。

阅读全文

no-title

LIN API

LIN 规范用 C 语言定义了 LIN 的 API,但未定义 API 的内部实现。
LIN 协会规定:对于采用 LIN 规范 2.x 版的 LIN 节点,如果用 C 语言开发应用程序,那么就必须使用 API,
对采用 LIN 规范 1.x 版的 LIN 节点,可以不使用标准规定的 API。

阅读全文

LIN入门书学习笔记

LIN 是什么?

LIN是Local Interconnect Network 的缩写,是基于 UART/SCI(Universal Asynchronous Receiver-Transmitter /Serial Communication Interface,通用异步收发器/串行通信接口)的低成本串行通信协议。可用于汽车、家电、办公设备等多种领域。

阅读全文

LIN入门 信号处理、配置、识别、诊断

信号处理、配置、识别、诊断

使用的角度来看, LIN 提供四项功能——信号处理、配置、识别和诊断,这四项功能共同构成了 LIN 的应用层。传输层是配置、识别和诊断这三项功能的通信载体,实现应用层消息与帧之间的格式转换和传输。为了规范使用, LIN 为应用层和传输层定义了 API 接口。

阅读全文

04、复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度

  • 最好情况时间复杂度
  • 最坏情况时间复杂度
  • 平均情况时间复杂度
  • 均摊时间复杂度

阅读全文

03、复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?

数据结构和算法本身解决的是

什么是复杂度分析?

1.数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。
2.因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。
3.分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。
4.复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。

阅读全文

02、如何抓住重点,系统高效地学习数据结构与算法?

当我们要谈一个事物/概念的时候,需要问自己三个终极问题–是什么?为什么?怎么样?

什么是数据结构和算法

数据结构,就是一组数据的存储结构。
算法,就是操作数据的一组方法。
数据结构是为算法服务的,算法要作用在特定的数据结构之上。

阅读全文

STM32 CAN 控制器

STM32 的 CAN 特性及架构

STM32 CAN 控制器

STM32 自带的是 bxCAN,即基本扩展 CAN。它支持 CAN 协议 2.0A 和 2.0B。它的设计目标是,以最小的 CPU 负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。对于安全紧要的应用, bxCAN 提供所有支持时间触发通信模式所需的硬件功能。

阅读全文

no-title

蓝牙4.0BLE协议栈

阅读全文

no-title

蓝牙无线网络节点设备

初始化

第一阶段:设置GAP任务配置文件参数,GAP特性,GAP绑定管理参数,GATT配置文件参数。

阅读全文

LIN开发流程(for freescale)

https://blog.csdn.net/yuandm819/article/details/52202196

阅读全文