imx6ul 6 之蜂鸣器

一、hw

  • hw原理图
    的撒该外设在底板上,核心板上没有
    beep控制IO 为 SNVS_TAMPER1

二、sw
1、初始化SNVS_TAMPER1这个IO复用为GPIO5_IO01
2、设置SNVS_TAMPER1的电气属性
3、初始化GPIO
4、控制GPIO输出高低电平

Makefile(错把dis写成bin,惨痛)

CROSS_COMPILE  ?=  arm-linux-gnueabihf-
TARGET    ?= beep
LD    := $(CROSS_COMPILE)ld
OBJCOPY   := $(CROSS_COMPILE)objcopy
OBJDUMP   := $(CROSS_COMPILE)objdump
CC    := $(CROSS_COMPILE)gcc

INCDIRS   := imx6u \
     bsp/clk \
     bsp/led \
     bsp/delay \
     bsp/beep

SRCDIRS   := project \
     bsp/clk \
     bsp/led \
     bsp/delay \
     bsp/beep

INCLUDE   := $(patsubst %,-I %,$(INCDIRS))

SFILES   := $(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.s))
CFILES   := $(foreach dir,$(SRCDIRS),$(wildcard $(dir)/*.c))

SFILENDIR  := $(notdir $(SFILES))
CFILENDIR  := $(notdir $(CFILES))

SOBJS   := $(patsubst %,obj/%,$(SFILENDIR:.s=.o))
COBJS   := $(patsubst %,obj/%,$(CFILENDIR:.c=.o))

OBJS   := $(SOBJS) $(COBJS)
VPATH   := $(SRCDIRS)
$(TARGET).bin:$(OBJS)
 	$(LD) -Timx6u.lds -o $(TARGET).elf $^
 	$(OBJCOPY) -O binary  -S $(TARGET).elf $@			<------------一开始把 -S 忘了
	 $(OBJDUMP) -D -m arm $(TARGET).elf > $(TARGET).dis		<------------写成.bin , gg

$(SOBJS):obj/%.o:%.s                                                   <-------------不严格要求有空格
	 $(CC) -Wall -nostdlib -c  $(INCLUDE) -o $@ $<
$(COBJS):obj/%.o:%.c
	 $(CC) -Wall -nostdlib -c  $(INCLUDE) -o $@ $<

.PHONY:clean
clean:                                             <------------------冒号不能忘记
 @rm -rf $(OBJS) *.bin *.imx *.dis *.elf           <-------------------@表示不输出命令本身

链接脚本 imx6u.lds
点号,冒号两边加空格,
点好所在行结尾要加分号

SECTIONS{
    . = 0x87800000;					<-----------点号后面面一定要有空格
    .text :                         			<-----------冒号前面一定要有空格
    {
        obj/start.o                                     <----------obj/要加,而且链接的是.o文件
        *(.text)
    }
    .rodata ALIGN(4) : {*(.rodata)}
    .data ALIGN(4) : {*(.data)}
    __bss_start = .;
    .bss ALIGN(4) : {*(.bss) *(COMMON)}
    __bss_end = .;
}

start.s

global _start
.global _bss_start
_bss_start :
    .word __bss_start
.global _bss_end
_bss_end :
    .word __bss_end

_start:
    mrs r0,cpsr
    bic r0,r0,#0x1f
    orr r0,r0,#0x13
    msr cpsr,r0

bss_loop:

    stmia r0!,{r2}
    cmp r0,r1
    ble bss_loop
    
    ldr sp,=0x80200000
    b main

三、summary
dis翻车

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值