嵌入式开发语言-C语言编程

概述

“C语言”被称为适合嵌入式系统开发的编程语言之一。
C语言在一般的编程中也是熟悉的开发语言,但实际上,如果试着使用C语言制作微型计算机的控制程序等,就必须使用与“普通的C程序”不同的使用方法。

作为一般的C语言的学习方法,使用“printf”“scanf”等标准函数的程序开发是固定的,但这些都是以UNIX和Windows等环境上的应用程序开发为前提的。
对此,没有显示器和键盘的嵌入式系统的微型计算机控制程序,该如何迈出学习的第一步呢?

环境

在Windows上构建C语言的环境

安装

首先,让我们建立C语言的开发环境。
任何用于解决问题的C语言都可以,这里我们将介绍“MinGW(Minimalist GNU For Windows)”。

当您在PC上安装此MinGW时,您将在Windows上使用UNIX软件开发环境“GCC(The GNU Compiler Collection)”。
首先,访问MinGW网站,然后从屏幕顶部的菜单中单击“下载”选项卡。
图1单击“MinGW(Minimalist GNU For Windows)”网站上的[Downloads]选项卡
在下一个屏幕上,单击“Download mingw-get-setup.exe(86.5kB)”链接,安装程序将被下载。
下载完成后,让我们运行“mingw-get-setup.exe”文件。
图2在下一个屏幕上单击“Download mingw-get-setup.exe(86.5kB)”链接
安装程序请按照以下步骤进行。
(1)显示“MinGW Installation Manager Setup Tool”对话框后,单击“Install”按钮。
(2)在下面的“步骤1:Specify Installation Preferences”屏幕上,指定要安装MinGW的目录。
在这里,安装默认的“C:\MinGW”。
此外,还有在开始菜单和桌面上创建图标的检查。
这一次,全部保持默认状态,单击Continue按钮。
(3)然后自动开始下载“MinGW Installation Manager”。
当下载处理达到100%时,单击Continue按钮。
(4)这次将重新打开“MinGW Installation Manager”对话框。
在这里,选择要安装的软件包。
用鼠标右键单击软件包名称的复选框将显示菜单。
在此,选择Mark for Installation将安装软件包。
如下图3所示,选择C和C++编译器,然后选择MSYS。
选择图3C和C++编译器以及MSYS

(5)然后从菜单中单击“Installation”-“Apply Changes”。
然后,您将看到“Pending Actions Schedule of Pending Actions”对话框,在此按下Apply按钮,开始下载Parkage和安装MinGW。
安装完成后,会显示消息“All changes were applied successfully;you may now close this dialogue.”,所以单击“Close”按钮,此外,MinGW Installation Manager也用“×”按钮关闭。
安装完成了。

在这一点上,您可能会注意到,不幸的是,开始菜单或桌面上没有显示MinGW图标。
这可能是安装程序故障的原因。
因为没有办法,直接双击“C:\MinGW\msys\1.0\msys.bat”,启动MinGW。
另外,在这个时候,在PC的桌面上制作“msys.bat”的快捷方式会很方便。
MinGW启动后,将显示以下屏幕:
在这里,您将使用UNIX命令操作计算机。
例如,输入“退出”并按“Enter”键关闭窗口。
图4.使用UNIX命令进行操作

在“MinGW”中运行C程序

让我们立即运行C程序。
在文本编辑器中输入以下C程序。

#include <stdio.h>
 
int main(void)
{
    printf("hello world\n");
    return 0;
}

如果默认安装MinGW,则“C:\MinGW\msys\1.0\home\用户名”将成为主目录。
让我们在这里保存程序“hello.c”。

现在,我在这里编译“hello.c”,但现在的MinGW错误地设置了“gcc”命令的路径。
因此,在文本编辑器中打开“C:\MinGW\msys\1.0\etc\profile”,进行如下修正

第19行

export PATH=".:/usr/local/bin:/c/mingw/bin:/bin:$PATH"

第21行

export PATH=".:/usr/local/bin:/bin:/c/mingw/bin:$PATH"

MinGW是UNIX的世界,所以与Windows的换行代码不同,记事本不能很好地换行。
笔者使用的是“TeraPad”,预先准备好可以编辑UNIX文本文件的文本编辑器。
那么,让我们运行C程序。
启动MinGW并尝试运行“gcc”命令。

图6启动“MinGW”并运行“gcc”命令

“gcc”命令可以很好地使用。
然后编译并运行“hello.c”。

在Mac上构建C语言的环境

安装

毕竟C语言不能默认运行,所以我们会在终端工作。
终端在Finder>应用程序>实用程序>终端中打开。

$ xcode-select --install

运行此命令会要求您安装它,所以单击安装。
之后,您也同意许可并完成安装。
确认gcc是否进入。

$ gcc -v

文本编辑器的工作

新建hello.c文件,输入下面的命令

$ vi hello.c

在这里,我写一个输出Hello,world的程序。

#include <stdio.h>

int main (void){
    printf("Hello,world!\n");

    return 0;
}

然后,保存退出

:wq

在终端的操作

启动终端,运行刚才创建的hello.c。
首先编译hello.c

$ gcc hello.c

如果没有错误,就不会显示任何东西。
然后执行

$ ./a.out

结束语

和Windows不同,可以很容易地进行环境构筑。
用命令的操作最初很难,但是随着学习,必须使用命令的情况和Linux处理的场面变多了,所以稍微练习一下也是好的。

  • 2
    点赞
  • 29
    收藏
  • 打赏
    打赏
  • 2
    评论
宋宝华嵌入式 C/C++语言精华文章集锦 C/C+语言 struct 深层探索 ............................................................................2 C++中 extern "C"含义深层探索........................................................................7 C 语言高效编程的几招...............................................................................11 想成为嵌入式程序员应知道的 0x10 个基本问题 .........................................................15 C 语言嵌入式系统编程修炼...........................................................................22 C 语言嵌入式系统编程修炼之一:背景篇 ............................................................22 C 语言嵌入式系统编程修炼之二:软件架构篇 ........................................................24 C 语言嵌入式系统编程修炼之三:内存操作 ..........................................................30 C 语言嵌入式系统编程修炼之四:屏幕操作 ..........................................................36 C 语言嵌入式系统编程修炼之五:键盘操作 ..........................................................43 C 语言嵌入式系统编程修炼之六:性能优化 ..........................................................46 C/C++语言 void 及 void 指针深层探索 .................................................................50 C/C++语言可变参数表深层探索 .......................................................................54 C/C++数组名与指针区别深层探索 .....................................................................60 C/C++程序员应聘常见面试题深入剖析(1) ..............................................................62 C/C++程序员应聘常见面试题深入剖析(2) ..............................................................67 一道著名外企面试题的抽丝剥茧 ......................................................................74 C/C++结构体的一个高级特性――指定成员的位数 .......................................................78 C/C++中的近指令、远指针和巨指针 ...................................................................80 从两道经典试题谈 C/C++中联合体(union)的使用 ......................................................81 基于 ARM 的嵌入式 Linux 移植真实体验 ................................................................83 基于 ARM 的嵌入式 Linux 移植真实体验(1)――基本概念 ...........................................83 基于 ARM 的嵌入式 Linux 移植真实体验(2)――BootLoader .........................................96 基于 ARM 的嵌入式 Linux 移植真实体验(3)――操作系统 ..........................................111 基于 ARM 的嵌入式 Linux 移植真实体验(4)――设备驱动 ..........................................120 基于 ARM 的嵌入式 Linux 移植真实体验(5)――应用实例 ..........................................135 深入浅出 Linux 设备驱动编程 .......................................................................144 1.Linux 内核模块..............................................................................144 2.字符设备驱动程序 ...........................................................................146 3.设备驱动中的并发控制 .......................................................................151 4.设备的阻塞与非阻塞操作 .....................................................................157

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论 2

打赏作者

ソフト開発王さん

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值