自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (4)
  • 收藏
  • 关注

原创 数据结构与算法-栈的设计与应用

0 概述本文主要涉及栈的设计与栈的应用,栈的后进先出特性使其广泛应用于各种问题解决方案中,这里主要介绍以下5种问题的栈方法解决方案。1)进制转换;2)括号匹配;3)多项式求解;4)八皇后问题;5)路径规划问题。1 栈的设计栈也是一种线性结构,只是其操作仅限于栈顶,只能进行压栈和出栈操作,所以其可以从列表和向量继承而来,并增添对应的压栈(Push)和出栈(Pop)接口,而对其他操作接...

2020-04-20 22:10:21 835

原创 数据结构与算法-向量的设计及其查找、排序算法

0 概述本文主要涉及向量(vector)的设计及其查找、排序算法。1)向量的设计主要包括当前元素的数目的追踪、内存的管理(扩大与缩小)、删除、插入等基本操作;2)向量的查找由于向量具有随机读取的性质,查询效率可以大大提升,本文主要介绍二分查找;3)向量的基本排序方法主要介绍冒泡排序、插入排序与归并排序。1 向量的设计向量的设计主要包括当前元素数目的追踪和内存管理以进行基本的删除、插入等...

2020-04-20 11:36:40 970

原创 数据结构与算法-列表(双向链表)设计及其排序算法

0 概述本文主要涵盖列表(双向链表)的设计及其排序算法的总结。列表是一种典型的动态存储结构。其中的数据,分散为一系列称作节点(node)的单位,节点之间通过指针相互索引和访问。为了引入新节点或删除原有节点,只需在局部调整少量相关节点之间的指针。这就意味着,采用动态存储策略,可以大大降低动态操作的成本。1 列表(双向链表)设计1.1 结点的设计列表是由一个个结点链接而成,其基本结构便是节点(...

2020-04-19 22:51:30 3480

原创 C/C++ 重载函数

1 定义函数重载是允许多个函数共享一个函数名,但是针对不同参数类型提供不同的操作.2 怎么重载一个函数名在C++中,可以为两个或多个函数提供相同的名字,只要他们的每个参数表唯一就行,也就是或者参数的个数不同,或者参数的类型不同。当一个函数名在一个特殊的域中被声明为多次时,编译器按照如下步骤解释第二个以及后续的声明。如果两个函数的参数表中参数的个数或类型不同时,则认为两个函数是重...

2020-04-11 18:34:41 582

原创 外设驱动 SDIO及SD存储卡

1、SDIO接口SDIO接口如下图所示,起始SDIO_CK是主机到卡之间的时钟;SDIO_CMD为命令和响应信号,主机和卡之间的命令与响应信息通过该引脚传输;SDIO_D[7:0]为双向数据总线,主机与卡之间的数据在这些引脚上传输。2、SDIO通讯流程SDIO总线通讯基于命令和数据传输。多媒体卡/SD/SD I/O总线上的基本事务是命令/响应事务。一般的处理过程如下:1)开始操作的流程为...

2019-09-19 15:55:30 1409 1

原创 C/C++ 二维指针数组与修改指针所指对象的函数传递问题

1、二维指针数组函数传递问题1、二维数组的函数传递问题在考虑这个问题前,我们首先要了解数组a[2]的a的含义,其实a可以看作一个指向数组元素类型并指向数组内第1个元素的指针。当我们要将二维数组作为函数参数时,可以参照一维数组的方法,一维数组sd[2]作为参数时,是将指向第1个元素的地址传递进去并给出元素个数,假设函数原型为 fun1(int *p_num),则调用时为func1(sd,2)。...

2019-09-02 10:50:17 779

原创 MC9S12XE bootloader开发

1、几条重要语句1、RELOCATE_TO该语句在prm文件中使用,如果一个代码段在运行时被移动到另一个不同的地方,则使用该语句定义。由于MC9S12XE系列单片机的FLASH模块在运行时不同同时进行读写,所以需要将对FLASH进行操作的代码移动到RAM内运行,而且如果在进行FLASH操作时,若有中断发生,那么也需要将中断程序移动到RAM中。所以对于存放FLASH操作和中断代码的内存需要利用R...

2019-05-27 11:28:45 2922 4

原创 MC9S12XE 启动过程

1.CodeWarrior 5.1智能链接器C程序经过编译后生成obj文件,然后链接器将其链接成最终可执行程序。在CodeWarrior 5.1中链接器生成.abs文件,然后烧录器再将.abs文件转换成.abs.s19文件。具体链接过程为:链接器将导入的obj文件中程序用到的初始化数据、启动数据结构、需要拷贝的数据、堆栈、固定页代码、非固定页代码、数据等代码或数据类型根据prm文件中设置的对应代...

2019-05-21 23:37:20 1957

原创 MC9S12XE 内存分配

1、内存分配1.逻辑地址和全局地址的映射关系9S12XE系列的逻辑地址与全局地址映射关系如下图所示:其中逻辑地址0x0000-0x07FF的2K空间对应全局地址的0x0000-0x07FF;逻辑地址0x0800-0x0BFF的1K EEPROM空间通过EPAGE映射非固定页EEPROM到全局地址0x10_0000-0x13_FBFF,逻辑地址0x0C00-0x0FFF的1K固定页EEPRO...

2019-05-19 20:47:19 2349 1

原创 MPC5744P-NXP各个模块(驱动)示例代码

作者各个模块的调试是基于参考手册并参考官方示例代码完成的,S32中有5746C、5748G、5744P等的示例代码,NXP驱动示例代码获取方法如下:1、NXP驱动示例代码1)2)3)2、开发用Demo板资料我的开发板是DEVKIT-MOTORGD,NXP官方为其提供了学习资料,当前(2019年4月21日)界面如下,点击文档与软件即可查阅。其中DEVKIT-MPC5744P Quick S...

2019-04-21 17:19:46 7251

原创 MPC5744P-UART(LIN)模块

1.结构介绍1、数据帧格式5744P的UART功能集成在LIN模块中,所以在LIN模块中介绍UART模式的使用。UART模式下的数据帧格式有8位、9位、16位和17位,其中8位和16位数据帧格式最后一位可为数据位也可为Parity位,9位和17位数据帧格式最后一位为Parity位。UART模式下用通过配置UARTCR寄存器中的WL1和WL0组成WL[1:0]来进行数据帧格式的选择。2、缓存器...

2019-04-21 16:55:10 5600 4

原创 MPC5744P-eTimer模块

1.通道结构5744每个eTimer模块含有6个相同的计数通道,每个计数通道含有16位计数器、分频器、保持寄存器各一个,捕捉寄存器、比较寄存器、比较预加载寄存器各两个,还有四个控制寄存器,其通道结构如下图:2、计数模式、eTimer模块含有多种计数模式,可根据实际情况选择合适的计数模式1、计数上升沿;2、计数跳边沿(上升沿和下降沿均计数);3、当二次输入为高时计数;4、QUADRA...

2019-04-08 11:30:00 4917 5

原创 MPC5744P-CAN模块

1、CAN模块结构5744CAN模块主要由CHI(Control Host Interface)、PE(Protocol Engine)和MBs三个部分组成,其中CHI负责发送仲裁和接收匹配,PE负责时钟等的配置,MBs进行消息的存储。结构如下图所示:2、MB(Message Buffer)结构5744含有多达64个MB(Mailbox)进行数据的收发,通过配置对应MB的C/S寄存器来进行...

2019-03-29 17:09:26 10047 25

原创 MPC5744P-DMA模块及SPI DMA发送

1、MPC5744P 主从机模块mpc5744含有z4d_0 core、z4d_0 core Nexus、DMA、SIPI、FlexRay五个主机模块和FLASH CTRL、PRAM CTRL、PBRIDGE #0、PBRIDGE #1、TCM五个从机模块,其中z4d_0 core、z4d_0 core Nexus、FlexRay连接主机端口M0、M1、M6,DMA和SIPI公用主机端口M5;F...

2019-03-28 11:37:12 4504

原创 uCOS-II 总结

1、任务调度1.调度uCOS-II的任务由任务控制块管理,在任务每个循环的末尾通过调用OSTimeDly()或者OSTimeDlyHMSM()来将当前任务从任务就绪表移除,并将该任务控制块内OSTCBDly赋予新值,然后进行一次任务调度让出CPU控制权。uCOS-II含有时钟节拍,时钟节拍在开中断的情况下定时触发时钟节拍中断,时钟节拍中断遍历任务控制块链表并将每个任务控制块内的OSTCBDl...

2019-03-13 15:21:49 1662

原创 uCOS-II PC编译环境搭建(基于BC45)

1.软件安装基于BC45的uC/OS-II的编译环境需要BC45和TASM5.0两个软件,这是因为BC45不含TASM5.0所以需要额外安装TASM5.0。1.安装BC45,一般默认为C:\BC45。由于BC45不支持64位系统,所以需要win7 32位或xp系统。本文在虚拟机环境下的xp系统完成。2.安装TASM5.0。在安装完成后需要将TASM5.0安装目录下BIN文件内的TASM.EX...

2019-03-13 10:05:46 2117

原创 MPC5744P-SPI模块(串行外设接口模块)

1.结构5744的SPI模块支持全双工三线同步传输,可运行在主机或从机模式,分别含有深度为5的FIFO发送和接收缓存区。其结构如下图。SPI配置允许模块发送和接收串行数据,同时也支持带FIFO缓存区的的进行扩展队列操作的数据传输。模块接收和发送的数据存放在独立的FIFO内,CPU或DMA控制器从接收FIFO读取数据,写入数据到Tx FIFO内进行发送。2、传输过程1)发送过程发...

2019-03-06 23:25:22 5927 18

原创 MPC5744P-S32 Design Studio 工程创建

1.下载和安装1.下载下载软件需要注册账号,后面安装时需要用到账户内的激活码。目前版本为2017.R1,网址为:https://www.nxp.com/support/developer-resources/run-time-software/s32-design-studio-ide:S32-DESIGN-STUDIO-IDE选择S32 Design Studio IDE for P...

2019-03-04 17:50:30 2802 3

原创 MPC5744P-ADC模块(模数转换模块)

1.结构5744P含有4个AD模块,每个模块包含16个通道。AD模块为12位逐次积分结构,采样和转换时间小于1us。ADC运行模式有为常规模式和电机控制模式,本文在常规模式下。AD模块可在CPU和CTU控制下工作,本文在CPU控制下工作。AD模块可分为ADCD(数字部分)和ADCA(模拟部分)两个部分,内部结构如下:1)ADCD:ADC数字接口,含有配置、控制和状态寄存器。被转换的值存储在...

2019-03-03 22:21:47 7349 5

原创 MPC5744P-PIT模块(周期中断定时器)

1.功能描述在周期中断定时器使能的情况下,定时器加载被LDVAL寄存器指定的计数初值,然后递减计数,当递减到0时自动重载LDVAL指定的计数初值并触发一次中断。中断的使能由TCTR寄存器TIE位控制。2.PIT初始化1.结构5744P含有4个周期中断定时器,各个定时器可以分别设置不同的定时器周期,也可以进行两个定时器的链接以形成定时周期更长的定时器,PIT定时器的结构如下:...

2019-03-01 10:09:25 5813 11

原创 MPC5744P-SIUL2模块(GPIO和多路复用功能)

MPC5744的SIUL2可用于GPIO、多路复用和中断/DMA请求,这里只涉及GPIO和多路复用功能。1.GPIO功能SIUL2能够控制芯片引脚的电特性,包括:1)自旋率、2)驱动能力、3)上拉\下拉控制、4)输入输出控制、5)滞后、6)反转、7)开漏等,主要涉及的寄存器为MSCR,如下图所示,MSCR主要控制芯片引脚电特性和输入/输出缓存器的使能。MSCR寄存器的各位如下所示...

2019-02-28 16:35:36 6284 5

原创 MPC5744P-时钟模块

1.时钟结构图图1 片内时钟结构图2.时钟分配有三种方式可为5744提供时钟源,分别为外部有源晶振、外部无源晶振和内部16MHz RC晶振。其中16MHz内部RC晶振一般作为PLL或外部晶振失效情况下的备用时钟,系统复位后5744默认选择16MHz内部RC晶振作为时钟源。5744内含有PLL0和PLL1两个PLL,PLL0输出为PLL0_PHI、PLL0_PHI1,PLL1输出为PLL1_...

2019-02-28 13:32:52 6937 26

MPC5744P驱动Demo

主要包括ADC、CAN、CLOCK、DMA、eTimer、PIT、PWM、SPI、UART等

2021-10-19

MyStack-BaseCpp.rar

主要涉及栈的设计与栈的应用,栈的后进先出特性使其广泛应用于各种问题解决方案中,这里主要介绍以下5种问题的栈方法解决方案。 1)进制转换; 2)括号匹配; 3)多项式求解; 4)八皇后问题; 5)迷宫寻径问题。

2020-04-20

MyVector_BaseCpp.h

主要涉及向量(vector)的设计及其查找、排序算法。 1)向量的设计主要包括当前元素的数目的追踪、内存的管理(扩大与缩小)、删除、插入等基本操作; 2)向量的查找由于向量具有随机读取的性质,查询效率可以大大提升,本文主要介绍二分查找; 3)向量的基本排序方法主要介绍冒泡排序、插入排序与归并排序。

2020-04-20

MyList_BaseCpp.h

本资源主要包括列表(双向链表)设计及其排序算法(C++实现),与博客相互配套使用,具有详细的注释与说明

2020-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除