嵌入式项目中使用Linux有哪些技巧?
串行调试器(serialconsole)连接到目标电路板(外部RX=>PC10、外部TX=>PC11、115200bits/s、8个数据位、无奇偶校验、1个停止位模式),然后按下复位按钮,该μClinux项目启动运行。开机输出显示在串行调试器上,显示屏出现Linux的企鹅标识。
步骤5:创建“你好,世界”应用
现在,按照代码示例和下面的说明,将一个用户应用添加到μClinux项目中。
创建:“stm32f429-linux-builder-master/user/src/hello.c”文件:
#include
intmain(){
printf(“Hello,world\n”);
return0;
}
必要时使用Tab键,创建:“stm32f429-linux-builder-master/user/Makefile”文件:
CC=$(CROSS_COMPILE)gcc
LDFLAGS?=$(CFLAGS)
target_out?=out
all:checkdirs
[Tab]$(CC)$(LDFLAGS)src/hello/hello.c-o$(target_out)/bin/
hello$(LDLIBS)
[Tab]-rm-rf$(target_out)/bin/*.gdb
checkdirs:
[Tab]mkdir-p$(target_out)/bin
clean:
[Tab]-rm-rf$(target_out)
通过activate.sh脚本,在不激活交叉编译环境下,在主机测试“Hello,world”这个应用。
在/user文件夹下,输入:
makeall
./out/bin/hello
为将hello.c嵌入到LinuxBuildroot里的脚本,修改mk/rootf.mak文件,必要时,使用Tab键。(粗体字表示新行开始处):
...
user_hello:
[Tab]make-C$(user_dir)CROSS_COMPILE=$(CROSS_
COMPILE)CFLAGS=$(ROOTFS_CFLAGS)target_
out=$(target_out_user)
$(rootfs_target):$(rootfs_dir)$(target_out_busybox)/.config
user_hello
[Tab]cp-af$(rootfs_dir)/*$(target_out_romfs)
[Tab]cp-f$(target_out_kernel)/fs/ext2/ext2.ko$(target_out_romfs)/lib/modules
[Tab]cp-f$(target_out_kernel)/fs/mbcache.ko$(target_out_romfs)/lib/modules
[Tab]cp-f$(target_out_user)/bin/*$(target_out_romfs)/usr/bin
需对mk/defs.mak文件做最后修改。加入以下几行:
...
user_dir:=$(root_dir)/user
target_out_user:=$(target_out)/user
user_dir:=$(root_dir)/user
target_out_user:=$(target_out)/user
一旦在目标MCU上建成、下载并运行映像,就可在/usr/bin目录中找到该应用程序以及其它已有的应用程序。在连接到Discovery板的终端上键入“hello[回车]”,可对该应用进行测试。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 嵌入式Linux系统中MMC卡驱动管理技术研究(06-10)
- FPGA的DSP性能揭秘(06-16)