- 博客(20)
- 资源 (6)
- 收藏
- 关注
原创 《深入浅出AUTOSAR OS》之内存保护
内存保护1 背景与基本原理内存保护(Memory protection)只能在为内存保护提供硬件支持的处理器上实现。比如硬件上MPU(MemoryProtectionUnits)功能的芯片。内存保护方案基于可执行程序的(data、code和stack)区域。Stack: 一个OS-Application由若干个对象(Task和ISR)组成,根据定义,栈(Stack)是只属于这些对象(Object)自己...
2020-06-13 18:54:01
6816
3
原创 Windows Cygwin环境搭建
Windows Cygwin环境搭建1.引言Cygwin是一个在Windows平台上运行的类UNIX模拟环境,在一些芯片开发场景下,开发人员并不使用IDE(集成开发环境),也不使用Linux,而是使用在Windows下的Cygwin环境去Makefile。本文介绍下基于Cygwin以RH850芯片使用GHS编译的开发环境搭建。2.下载安装前往官网https://www.cygwin.com/下载在线安装包,也可以上网搜下离线安装包,本文以官网在线安装包进行说明,在官网首页找到如下界面,
2020-06-10 21:10:23
1387
原创 AUTOSAR OS学习笔记3-中断处理
中断处理处理中断的功能(Interrupt Service Routine: ISR)分为两类:一类中断:ISR不使用OS提供的API,ISR完成后程序返回被打断处继续执行,即中断对任务管理没有影响,这里的没有影响指的是不会引起新的任务调度,比如,任务A被一类中断打断后,一类中断运行完后从任务A被打断的位置继续执行,不会去执行任务B。二类中断:由OS管理,OS提供一个ISR的运行架构,ISR中可以调用OS提供的API。一类中断的中断优先级要大于二类中断的优先级。...
2020-06-04 08:45:48
4912
原创 IAR for ARM编译器使用技巧之数据定位
1、引言在实际项目开发中经常有要求将某些数据固定生成在芯片的某个地址中,我们称之为定位,本文基于IAR Embedded Workbench for Arm 8.32.1编译器,S32K144芯片实现,以将一个16长度的数组定位到0x0000FB00地址为例。其他芯片其他编译器可参考该套路。2、改C代码确定需要定位的数据,以testData为例:unsigned char ...
2020-04-11 13:00:56
1990
原创 AUTOSAR OS学习笔记2-错误码
引言我们知道AUTOSAR OS规范是在OSEK OS基础上补充完善实现的,在OSEK OS规范中对带状态返回值的API进行了约束,类型为StatusType,正常情况下返回值为E_OK,定义E_OK为0,其他若干非正常情况进行了归类并分别统一了错误码形式,AUTOSAR OS在其基础上进行了补充,也就是说在每个API中什么情况下该回什么样的错误码是已规定的,本文将所有错误码进行总结。...
2020-04-06 16:39:56
3034
原创 IAR for ARM编译器使用技巧之一
IAR for ARM编译器使用技巧之一引言本文主要介绍IAR for ARM编译器的使用技巧,基于编译器版本IAR Embedded Workbench for Arm 8.32.1,S32K144芯片。在芯片开发过程中经常需要查看寄存器,特别是是在开发Bootloader时还需要用到擦除全部flash这样的功能。这两个常用功能在该编译器中略不好找。另外Bootloader开发中经常需要将...
2020-04-03 20:37:46
2788
原创 免费且好用的UML工具推荐
免费且好用的UML工具推荐1、引言统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。作为一名程序员,画UML图几乎是必须掌握...
2020-01-05 14:36:55
8720
原创 AUTOSAR OS - 2 缩略语和缩写
2 缩略语和缩写缩写 描述 API Application Programming Interface AR AUTOSAR BSW Basic Software BSWMD Basic Software Module Description CDD Comp...
2020-01-01 18:02:52
1095
2
原创 AUTOSAR OS SC2 - 时间保护
在AUTOSAR OS SC2中相比于SC1主要加入了时间保护功能,那时间保护是什么,为什么要加入时间保护?其实时间保护原理很简单,加入时间保护功能其实是为了:防止时间错误通过操作系统传播,导致其它正常运行的任务/中断错过终止时间。那么时间保护是如何解决上述问题的呢,也就是说到底保护了什么?记住以下3点即可:执行时间保护(Execution Budget) 内部间隔时间保护(Ti...
2019-12-31 14:28:40
2763
1
原创 AUTOSAR OS - 1 简介和功能概述
1 简介和功能概述本文档描述了AUTOSAR操作系统的基本要求,以满足AUTOSAR SRS[2]中提出的顶级要求。一般来说,操作系统可以根据其特性分成不同的组,例如静态配置的和动态管理的。要对AUTOSAR操作系统进行分类,以下是基本特性:AUTOSAR OS是静态配置的和可裁剪的 是能保证其实时性的 提供基于优先级的调度策略 在运行时提供保护功能(内存保护、时间保护等)...
2019-12-31 14:09:58
2376
原创 Cortex M0+内核芯片开关外设中断
Cortex M0+内核芯片开关外设中断1、引言本文将介绍如何针对Cortex M0+内核芯片的外设进行开关(使能与失能)设置,控制NXP Keaz128芯片CAN中断开关为例,其他该内核芯片设置方式可进行参考。2、NVICNVIC:Nested Vectored Interrupt Controller,嵌套向量中断控制器。在ARM内核中由NVIC模块负责中断向量相关设置,自然C...
2018-08-19 18:26:58
1713
原创 010.使用新版本IAR编译老版本的STM32工程
使用新版本IAR编译老版本的STM32工程1、引言IAR作为STM32芯片的常用编译器,其版本更新较快,特别是大版本更新会出现工程的兼容性问题,比如常见的新版本IAR打开老版本的工程会出现编译不通过问题,本文将介绍如何解决该问题。2、打开工程原材料:老版本IAR工程:一个使用IAR for ARM v5.x编译器建立的STM32工程新版本IAR:IAR for ARM v8.x现使用新编译器打开老...
2018-04-02 22:27:08
1820
原创 009.S32K14x休眠唤醒设置
S32K14x休眠唤醒设置1、引言在上一篇文章《S32K144功耗管理与系统模式控制》中我们知道S32K14x系列芯片具有芯片唤醒功能,本文将介绍如何对其进行设置。2、休眠设置S32K14x的休眠模式包括两种:(1)睡眠模式:STOP1、STOP2(2)深度睡眠模式:VLPS进入上述两种睡眠模式都须有如下3个设置步骤:步骤1:关闭所有Clock Monitors1) 清空SCG_SOSCCSR寄存...
2018-04-01 21:37:21
7170
2
原创 008.使用IAR生成HEX与ELF文件
使用IAR生成HEX与ELF文件1、什么是ELF文件ELF:Executable and Linking Format可执行和链接格式。ELF文件不同于我们常下载用的hex文件,Intel hex文件常用来保存单片机或其他处理器的目标程序代码,是保存物理程序存储区的目标代码映像,而ELF文件不仅仅包括上述hex文件的信息,同时还包括符号表、链接信息、调试信息、源码信息等。这就是为什
2018-02-02 09:06:46
5614
1
原创 007.链接器命令脚本LD文件教程(1)
开发人员如何指定一个二进制镜像文件的内部布局呢?可以传递给链接器一个链接描述文件,也成为链接器命令脚本。可以将这个特殊的文件看做一份构造二进制可执行镜像的“配方”。下面代码中显示了U-Boot引导加载程序使用的链接器描述文件的部分内容。 该脚本从这里开始定义了二进制ELF镜像的输出段。它指示链接器将名为.resetvec的代码段放置在数据镜像的固定地址处,即地址0xFFFFFFFC。此外,它
2017-09-09 21:32:00
1331
转载 我被辞退,竟然与能力无关!趁年轻,必须懂得这些老板潜规则!
辞退,与能力无关【管理思想】导读让你希望在公司里成为老板心目中不可替代的人,那么你就必须学习这篇文章,这些都是职业化的理念,可以作为员工培训的教材。记住,学习永远是不会迟的投资,【管理思想】每天给你精华文章,帮助你成长!规则一:学会尊敬和服从上级职场之所以会有上下级,是为了保证团队工作的开展。上级掌握了一定的资源和权力,考虑问题是从团队角度考
2014-10-16 11:36:27
2827
1
IOCP完成端口(C#)
2015-01-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人