MCAL--MCU (S32K144)

AutoSAR中MCU Driver主要提供了用于基本的控制器初始化、下电、复位功能的服务,同时也为其它MCAL层需要的功能提供对应的服务函数。通常来说在AutoSAR的架构中MCU主要支持以下几个功能:
1.初始化控制器的外设时钟、系统时钟、PLL等,对所有控制器内各个外设模块用到的时钟提供配置服务。
2.初始化定义的RAM Section。
3.为MCU的运行提供省电功能,支持MCU运行相关模式转化配置,支持整个系统复位,以及获取系统复位的原因。
4.支持通用的模块的配置,比如DMA、GTM等。

目标是:

这里 ,我们以S32K144这款芯片为例,RUN模式下,system clock= 80MHz(以下MHz简称M)

如果想快速了解这个芯片时钟,找到对应的datasheet ,找到时钟树:
在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

1、外部晶振

S32K144芯片中,使用MCAL(Microcontroller Abstraction Layer)模块需要进行以下步骤: 1. 在MCUXpresso IDE中创建一个新的S32K144工程,并选择MCUXpresso SDK为工程模板。 2. 在工程配置中,选择需要使用的MCAL模块,例如GPIO、UART等,并根据具体需求进行相应的配置。 3. 在代码中包含相应的MCAL库文件,并调用相应的MCAL函数来实现对硬件资源的访问和控制。 以下是示例代码: ``` #include "fsl_gpio.h" #include "fsl_uart.h" int main(void) { gpio_pin_config_t led_config = { kGPIO_DigitalOutput, 0, }; uart_config_t uart_config; uint8_t buffer[20] = {0}; uint32_t i; // Initialize LED GPIO_PinInit(GPIO, 0U, 19U, &led_config); GPIO_PinWrite(GPIO, 0U, 19U, 1); // Initialize UART UART_GetDefaultConfig(&uart_config); uart_config.baudRate_Bps = 115200U; UART_Init(UART0, &uart_config, CLOCK_GetFreq(kCLOCK_CoreSysClk)); UART_WriteBlocking(UART0, "MCAL example\r\n", 15); // Toggle LED and send UART message while (1) { GPIO_TogglePinsOutput(GPIO, 0U, 1U << 19U); for (i = 0; i < 1000000U; i++) { __asm("NOP"); } UART_WriteBlocking(UART0, "LED toggled\r\n", 13); } } ``` 在代码中,先通过GPIO_PinInit函数初始化GPIO引脚为输出模式,然后通过GPIO_PinWrite函数控制LED的亮灭。同时,通过UART_GetDefaultConfig和UART_Init函数初始化UART模块,并通过UART_WriteBlocking函数发送消息。最后,通过GPIO_TogglePinsOutput函数实现LED的闪烁效果。 需要注意的是,在使用MCAL模块时需要仔细阅读相应的文档,并根据具体需求进行相应的配置和调试。同时,也需要注意硬件资源的安全性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小昭debug嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值