当前位置: 首页 > news >正文

企业网站排名软件度智能优化精美网页赏析

企业网站排名软件度智能优化,精美网页赏析,创意赣州网站建设,绿色软件下载网站推荐学习了正点原子Linux环境下的GPIO的输入输出的裸机实验学习#xff0c;现在进行一下小结#xff1a; 启动文件start.S的编写 .global _start .global _bss_start _bss_start:.word __bss_start.global _bss_end _bss_end:.word __bss_end_start:/*设置处理器进入SVC模式*/m…学习了正点原子Linux环境下的GPIO的输入输出的裸机实验学习现在进行一下小结 启动文件start.S的编写 .global _start .global _bss_start _bss_start:.word __bss_start.global _bss_end _bss_end:.word __bss_end_start:/*设置处理器进入SVC模式*/mrs r0, cpsr /*读取cpsr到r0*/bic r0, r0, #0x1f /*清除cpsr的bit4-0*/orr r0, r0, #0x13 /*使用SVC模式*/msr cpsr, r0 /*将r0写入到cpsr*//*清除bss段*/ldr r0, _bss_startldr r1, _bss_endmov r2, #0 bss_loop:stmia r0!, {r2}cmp r0, r1ble bss_loop/*设置sp指针*/ldr sp, 0x80200000b main /*跳转到C语言main函数*/ .global指令用于定义全局变量  .word指令定义了两个符号 _bss_start 和 _bss_end它们都初始化为对应的符号 __bss_start 和 __bss_end 的地址在后面讲到的链接脚本文件imx6u.lds中有为这两个符号赋值地址。这些符号通常用于标识程序中BSS段的开始和结束。 BSS段Block Started by Symbol是程序数据段的一部分用于存储未初始化的全局变量和静态变量。在程序启动时BSS段会被清零并且其大小会被计算到程序的总内存占用中尽管它在磁盘上的表示可能非常小或甚至没有。 程序启动会先从启动文件开始执行默认从_start处开始执行。 Makefile编写 通过make指令可以执行目录下的Makefile文件我们可以在Makefile文件里编写编译过程的一系列指令方便开发。  Makefile文件以及相应的注释如下 #变量赋值如果前面已经有赋值则用前面的没有就用等号后面的 CROSS_COMPILE ? arm-linux-gnueabihf- TARGET ? beepCC : $(CROSS_COMPILE)gcc LD : $(CROSS_COMPILE)ld OBJCOPY : $(CROSS_COMPILE)objcopy OBJDUMP : $(CROSS_COMPILE)objdump #保存头文件所在目录的变量 # \ 表示本行和下一行属于同一行。为换行符 INCUDIRS : project \imx6u \bsp/clk \bsp/led \bsp/delay \bsp/beep#保存源文件所在目录的变量 SRCDIRS : project \bsp/clk \bsp/led \bsp/delay \bsp/beep#将变量INCUDIRS里的值都加上-I前缀 #加-I是以为makefile语法指定头文件目录时候前面要加-I #patsubst语法在INCUDIRS中所有的单词前加上-I因为%为通配符 INCLUDE : $(patsubst %,-I%,$(INCUDIRS)) #foreach作用是将SRCDIRS变量的值赋值给dir然后执行最后的表达式wildcard #wildcard的作用是将dir目录下的所有.S文件前面带着目录都存入SFILES变量 SFILES : $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S)) CFILES : $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c)) #notdir作用是删除SFILES变量的目录成分只留文件名 SFILENDIR : $(notdir $(SFILES)) CFILENDIR : $(notdir $(CFILES)) #将没有目录的SFILENDIR的值都加上obj/前缀并将.S.c替换成.o SOBJS : $(patsubst %.S,obj/%.o,$(SFILENDIR)) COBJS : $(patsubst %.c,obj/%.o,$(CFILENDIR)) #保存所有的.o文件 OBJS : $(SOBJS) $(COBJS) #如果当前目录找不到目标文件和依赖文件就到指定的路径去找 VPATH : $(SRCDIRS) #伪目标 .PHONY:clean # 目标文件 : 依赖文件 #-T后面接链接脚本 #-o 指定输出文件名 #$^表示所有的依赖文件指令的作用是链接所有的依赖文件成可执行文件.elf #-O表示指定输出的格式为纯二进制文件 #-S表示剥除符号表和重定义表无调试信息 #$表示目标文件 #-D表示输出汇编文件 -m表示指定目标架构arm #是shell中的重定向操作符将输出文件重定向到文件.dis $(TARGET).bin : $(OBJS)$(LD) -Timx6u.lds -o $(TARGET).elf $^$(OBJCOPY) -O binary -S $(TARGET).elf $$(OBJDUMP) -D -m arm $(TARGET).elf $(TARGET).dis#-Wall表示显示警告信息 #-nostdlib表示在链接时不使用标准库 #-c表示只进行编译和汇编不进行链接 #$表示目标文件 $表示规则中的第一个依赖文件 $(SOBJS) : obj/%.o : %.S$(CC) -Wall -nostdlib -c -O2 $(INCLUDE) -o $ $ $(COBJS) : obj/%.o : %.c$(CC) -Wall -nostdlib -c -O2 $(INCLUDE) -o $ $ #清除编译生成的各种文件 clean:rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).dis $(OBJS) #打印编译过程生成的变量 print:echo INCLUDE $(INCLUDE)echo SFILES $(SFILES)echo CFILES $(CFILES) echo SFILENDIR $(SFILENDIR)echo CFILENDIR $(CFILENDIR) echo SOBJS $(SOBJS)echo COBJS $(COBJS) echo OBJS $(OBJS) 链接脚本imx6u.lds SECTIONS{. 0x87800000;.text :{obj/start.o*(.text)}.rodata ALIGN(4) : {*(.rodata*)}.data ALIGN(4) : {*(.data)}__bss_start.;.bss ALIGN(4) : {*(.bss) *(COMMON)}__bss_end.; } 链接脚本的主要作用有定义链接起始地址、调整链接顺序第一个要连接的文件必须是start.o .为定位计数器默认定位计数器为0给这个特殊符号赋值0x87800000后面的链接起始地址就会是0x87800000 代码段可以分为text段、只读数据段、数据段和BSS段 ALIGN(4)的作用是4字节对齐 BSS段Block Started by Symbol是程序数据段的一部分用于存储未初始化的全局变量和静态变量。在程序启动时BSS段会被清零并且其大小会被计算到程序的总内存占用中尽管它在磁盘上的表示可能非常小或甚至没有 GPIO输入输出配置的库函数 配置复用功能函数 IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03,0); 上面示例中的 IOMUXC_GPIO1_IO03_GPIO1_IO03是一个宏定义如下 上面的操作是我们通过传递参数将对应模式的值放到我们的寄存器地址。也就是将0x5写到0x020E0068为地址的寄存器里查看参考手册 就是向我们这个寄存器写入0x5将其复用为GPIO1_IO03 配置电气属性函数 IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO03_GPIO1_IO03,0x10B0); 与我们的复用功能函数类似也是通过传入参数到我们相关的配置寄存器地址中如下 为地址为0x020E02F4的配置寄存器写入0x10b0 通过查看参考手册进行对应的电气属性配置 写入0x10B0是配置为输出模式 写入0xF080是配置为输入模式上拉使能迟滞比较器 GPIO寄存器组 通过结构体指针操作寄存器组进而配置GPIO为输入还是输出模式1为输出模式。0为输入模式
http://www.dnsts.com.cn/news/151039.html

相关文章:

  • 网站建设的申请理由网店库存管理软件
  • 网站图片怎么优化是网站推广的案例
  • 北京网站建设的服务公司微建网站
  • 高唐网站建设建设工程施工员考试在哪个网站
  • 技术支持广州网站建设北京市网站制作
  • 阿里云网站备案流程陕西住房与建设厅网站
  • 深圳网站建设设计网站建设的利益
  • app网站开发学习服务之家网站推广公司
  • 做自己的网站花多钱商品房交易网
  • 域名网站空间做网站遵义
  • 营销型网站设计模板个人网站包含哪些内容
  • 山东seo网站推广360建筑网官网下载
  • 网站建设总结与丹阳论坛
  • 建设银行网站查余额新闻平台发布
  • 阳春县建设局网站深圳全屋整装哪家公司好
  • 网站降权不更新文章可以吗网站建设seo方案
  • 重庆seo网站排名优化有没有做电子名片的网站
  • 手机网站变灰枣庄市建设项目环评备案网站
  • 网站开发机构班级网站建设策划书
  • 广州制作网站公司哪家好南京百度推广网站
  • 网站建设项目策划书模板范文网站建设与制作模板
  • 福州网站建设 联系yanktcn 05东营网格通
  • 东莞家具行业营销型网站建设多少钱外贸接单网站
  • 电子商务网站建设配色网页搜索引擎
  • 个人网页制作素材图片湖南seo博客seo交流
  • 免费网站源码下载网页前端开发培训
  • 金融品牌网站设计网页程序开发语言
  • 查询网站备案进度查询四大网站
  • 网站制作运营公司wordpress文章自适应图片大小
  • 青岛市专业做网站的吗南京哪里可以做网站