2.C语言BSP LED驱动【笔记】

这篇博客详细介绍了C语言在BSP(板级支持包)中实现LED驱动的过程,涉及汇编语言、main.c、main.h、Makefile和链接脚本等内容。通过Makefile的规则编译和链接.s或.c文件为.elf和.bin格式,并讨论了链接脚本中内存段的配置,如代码段(text)、只读数据段(rodata)、数据段(data)和bss段的对齐与初始化。此外,还提到了编译选项如-nostdlib和-O2的作用。
摘要由CSDN通过智能技术生成

Code

汇编

.global _start  		/* 全局标号 */

/*
* 描述:	_start函数,程序从此函数开始执行,此函数主要功能是设置C
*		 运行环境。
*/
_start:

   /* 进入SVC模式 */
   mrs r0, cpsr        /*CPSR的值读到r0中*/
   bic r0, r0, #0x1f 	/* 将r0寄存器中的低5位清零,也就是cpsr的M0~M4 ~0 0000=0x1f	*/
   orr r0, r0, #0x13 	/* r0或上0x13,表示使用SVC模式					*/
   msr cpsr, r0		/* 将r0 的数据写入到cpsr中 					*/

   ldr sp, =0X80200000	/* 设置栈指针			 */
   b main				/* 跳转到main函数 		 */

main.c

#include "main.h"

/*使能I.MX6U所有外设时钟*/

void clk_enable(void)
{
   
	CCM_CCGR0 = 0xffffffff;
	CCM_CCGR1 = 0xffffffff;
	CCM_CCGR2 = 0xffffffff;
	CCM_CCGR3 = 0xffffffff;
	CCM_CCGR4 = 0xffffffff;
	CCM_CCGR5 = 0xffffffff;
	CCM_CCGR6 = 0xffffffff;
}

/* 初始化LED对应的GPIO*/
void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值