登录   |   注册
    准考证打印   论文投票   报考指南   论文辅导   软考培训   郑重申明  
您现在的位置:  首页 > 软考学苑 > 信息安全工程师 > 信安上午综合知识 > 信安考点梳理 >> 正文
正文
信息安全工程师教程:嵌入式c 语言的编程方法和编译方法
来源: 作者: 时间;2018-02-01 16:53:52 点击数: 尚大软考交流群:376154208
嵌入式C 语言的编程方法和编译方法
在上述交叉编译环境中,需进行如下的工作:
(1)建立工作目录
[root@zxt smile]# mkdir hello
[root@zxt smile]# cd hello
<尚大教育,教育至上,人才为大:sdedu.cc>
嵌入式C 语言的编程方法和编译方法
    在上述交叉编译环境中,需进行如下的工作:
    (1)建立工作目录
    [root@zxt smile]# mkdir hello
    [root@zxt smile]# cd hello
    (2) 编写程序源代码
    在Linux 下的文本编辑器有许多,常用的是vim 和Xwindow 界面下的gedit 等,我们在开发过程中推荐使用vim,用户需要学习vim 的操作方法,请参考相关书籍中的关于vim 的操作指南。Kdevelope、anjuta 软件的界面与vc6.0 类似,使用它们对于熟悉Windows 环境下开发的用户更容易上手。
    实际的hello.c 源代码较简单,如下:
    #include <stdio.h>
    main ()
    {
    printf("hello world /n");
    }
    我们可以是用下面的命令来编写hello.c 的源代码,进入hello 目录使用vi 命令来编辑代码:
    [root@zxt hellol# vi hello.c
    按"i" 或者"a" 进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入命令状态,再用命令"zwq"保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。
    (3)编写Makefi1e
    要使上面的hello.c 程序能够运行,我们必须要编写一个Makefi1e 文件, Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个"make" 命令整个工程就可以实现自动编译,当然我们本次实验只有一个文件,它还不能体现出使用Makefile 的优越性,但当工程比较大文件比较多时,不使用Makefile几乎是不可能的。
    下面我们介绍本次实验用到的Makefi1e 文件。
    CC= armv41-unknown-linux-gcc
    EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS+= -static
    all: $(EXEC)
    $(EXEC): $(OBJS)
    $(CC) $(LDFLAGS) -o $@ $(OBJS)
    clean:
    -rm -f $(EXEC) * .elf * .gdb *.o
    下面我们来简单介绍这个Makefile 文件的几个主要部分:
    CC 指明编译器
    EXEC 表示编译后生成的执行文件名称
    OBJS 目标文件列表
    CFLAGS 编译参数
    LDFLAGS 连接参数
    all: 编译主入口
    clean: 清除编译结果
    注意"$(CC) $(LDFLAGS) -o $@ $(OBJS)" 和"-rm-f$(EXEC) * .elf * .gdb *.o"前空白由一个Tab 制表符生成,不能单纯由空格来代替。
    与上面编写hello.c 的过程类似,用vi 来创建一个Makefile 文件并将代码录入其中
    [root@zxt hello ]# vi Makefile
    (4) 编译自用程序
    在上面的步骤完成后,我的就可以在hello 目录下运行"make"来编译我们的程序了。如果进行了修改,重新编译则运行:
    [root@zxt hel1o]# make clean
    [root@zxt hel1o]# make
    注意:编译、修改程序都是在宿主机(本地PC 机)上进行,不能在MINICOM的终端方式下进行。
    (5) 下载调试
    在宿主PC 计算机上启动NFS 服务,并设置好共享的目录,在建立好NFS 共享目录以后,我们就可以进入MINICOM 中建立开发板与宿主PC 机之间的通信了。
    [root@zxt hel1o]# minicom
    [/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56: /arm2410s /host
    注意:IP 地址需要根据宿主PC 机的实际情况修改。
    成功挂接宿主机的arm2410s 目录后,在开发板上进入/host 目录便相应进入宿主机的/arm241Os 目录,我们已经给出了编辑好的hel1o.c 和Makefile 文件,它们在/arm241Os/exp/basic/O1_ hello 目录下。用户可以直接在宿主PC 上编译生成可执行文件,并通过上面的命令挂载到开发板上,运行程序察看结果。
    如果不想使用我们提供的源码的话,可以再建立一个NFS 共享文件夹。如/root/share ,我们把我们自己编译生成的可执行文件复制到该文件夹下,并通过MINICOM 挂载到开发板上。
    [root@zxthello]# cp hello /root/share
    [root@zxt hello]# minicom
    [/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56: /root/share /host
    再进入/host 目录运行刚刚编译好的hello 程序,查看运行结果。
    [/mnt/yaffs] cd /host
    [/host] ./hello hello wor1d
    注意:开发板挂接宿主计算机目录只需要挂接一次便可,只要开发板没有重启,就可以一直保持连接。这样可以反复修改、编译、调试,不需要下载到开发板。
<尚大教育,教育至上,人才为大:sdedu.cc>
 
   各省软考办 
 
来顶一下
返回首页
返回首页
上一篇:信息安全工程师教程:ic 卡的安全-智能卡系统功能要素
下一篇:信息安全工程师教程:ic 卡的安全配置和应用-ic 卡基础知识
 相关文章
 
 
跟贴共
笔 名 :   验证码:
网友评论仅供其表达个人看法,并不表明尚大教育同意其观点或证实其描述
距离2023年05月27-28日软考考试还有
尚大软考交流群:376154208
软考各地考务机构
历年真题汇总




各省市软考报名简章