i.MX6ULL终结者串口格式化函数例程编译及运行 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

i.MX6ULL终结者串口格式化函数例程编译及运行

发表时间:2020-10-19

发布人:葵宇科技

浏览次数:51

我们打开Makefile文件,输入下面的内容:

  1 CROSS_COMPILE   ?= arm-linux-gnueabihf-
  2 TARGET ?= printf
  3 
  4 CC := $(CROSS_COMPILE)gcc
  5 LD := $(CROSS_COMPILE)ld
  6 OBJCOPY := $(CROSS_COMPILE)objcopy
  7 OBJDUMP := $(CROSS_COMPILE)objdump
  8 
  9 LIBPATH := -lgcc -L /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/lib/gcc/arm    -linux-gnueabihf/4.9.4
 10 
 11 
 12 INCDIRS := core  13                                    stdio/include  14                                    drivers/clk  15                                    drivers/led  16                                    drivers/delay  17                                    drivers/beep  18                                    drivers/gpio  19                                    drivers/key   20                                    drivers/exit  21                                    drivers/int   22                                    drivers/epittimer     23                                    drivers/keyfilter     24                                    drivers/uart
 25 
 26 SRCDIRS := ./    27                                    stdio/lib  28                                    drivers/clk  29                                    drivers/led  30                                    drivers/delay  31                                    drivers/beep  32                                    drivers/gpio  33                                    drivers/key   34                                    drivers/exit  35                                    drivers/int   36                                    drivers/epittimer     37                                    drivers/keyfilter     38                                    drivers/uart
 39 
 40 
 41 INCLUDE := $(patsubst %, -I %, $(INCDIRS))
 42 
 43 SFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S))
 44 CFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))
 45 
 46 SFILENDIR := $(notdir  $(SFILES))
 47 CFILENDIR := $(notdir  $(CFILES))
 48 
 49 SOBJS := $(patsubst %, output/%, $(SFILENDIR:.S=.o))
 50 COBJS := $(patsubst %, output/%, $(CFILENDIR:.c=.o))
 51 OBJS := $(SOBJS) $(COBJS)
 52 
 53 VPATH := $(SRCDIRS)
 54 
 55 .PHONY: clean
 56         
 57 $(TARGET).bin : $(OBJS)
 58         $(LD) -Timx6ul.lds -o $(TARGET).elf $^ $(LIBPATH)
 59         $(OBJCOPY) -O binary -S $(TARGET).elf $@
 60 
 61 $(SOBJS) : output/%.o : %.S
 62         $(CC) -Wall -nostdlib -fno-builtin -c -O2  $(INCLUDE) -o $@ $<
 63 
 64 $(COBJS) : output/%.o : %.c
 65         $(CC) -Wall -Wa,-mimplicit-it=thumb -nostdlib -fno-builtin -c -O2  $(INCLUDE) -o $@ $<
 66         
 67 clean:
 68         rm -rf $(TARGET).elf $(TARGET).dis $(TARGET).bin $(COBJS) $(SOBJS)

Makefile文件我们重要修改下面几钢处所:
第2行的target赋值改成printf。
第13行添加格局化函数库的头文件“stdio/include”到INCDIRS变量。
第27行添加格局化函数库的.c文件“stdio/lib”到SRCDIRS变量。
第65行添加-Wa,-mimplicit-it=thumb编译选项。

链接文件保持不变。

然后我们在终端输入“make”敕令,开端编译,编译完成后生成printf.bin文件,如图 1所示:
在这里插入图片描述

图 1

然后在终端输入敕令“chmod 777 create_imx”修改create_imx文件具有可履行权限,如图 2所示:
在这里插入图片描述

图 2

最后在终端运行敕令“./create_imx printf.bin”生成最终的镜像文件“bare.imx”,如图 3所示:
在这里插入图片描述

图 3

然后我们将生成的bare.imx文件经由过程SSH软件拷贝到mfg烧写对象内对应目次下,这一步可以参考前面的烧写章节。将拨码开关怀换成烧写模式,上电烧写等待烧写完成,然后将拨码开关怀换回启动模式,然后我们打开SecureCRT,按照上一章节的设备,设备完进入SecureCRT的串口模式下,然后开辟板上电,可以看到串口打印信息如图 4所示:
在这里插入图片描述

图 4

根据提示输入两个整数,中心用空格分开,输入完成按键回车按键,可以看到SecureCRT的打印信息如图 5所示:
在这里插入图片描述

图 5

大年夜上图可以看到我们分别输入了整数21和23,它们的和是44。经由过程运行结不雅可以看到我们的printf和scanf格局化函数移植成功。在这里插入图片描述

相关案例查看更多