前言

本文主要介绍嵌入式系统程序设计基础,包含在Ubuntu系统下进行较简单的C语言程序流程。(附带Ubuntu24.04安装步骤)

一 、Ubuntu24.04系统安装

1.打开vmware workstation pro 17 选择创建新的虚拟机

在这里插入图片描述

2.来到新建虚拟机引导 浏览并选择已经下好的Ubuntu24.04镜像文件 这里我选择的是清华大学开源软件镜像站
参考链接 清华大学开源软件镜像站

在这里插入图片描述

3.新建虚拟机默认位置在C盘 但会占很大体积(30G左右)建议改到D盘 随后选择虚拟磁盘内容为30GB,勾选【将虚拟磁盘存储为单个文件】然后默认参数硬件及安装成功

在这里插入图片描述

二、在Ubuntu环境下编写C程序

1.编写程序
打开终端,使用文本编辑器(如nano)创建一个新的C语言源文件
在这里插入图片描述

nano hello.c

在编辑器中输入以下代码
在这里插入图片描述
保存并推出编辑器 ctrl+x保存再按Y最后按enter

#include <stdio.h>

int main(){
    printf("Hello,World!\n");
    return 0;
}

2.编译程序
回到终端中 输入这段编译代码 用gcc编译器对刚刚写入的程序进行编译

gcc hello.c -o hello

在这里插入图片描述

3.运行程序
输入这段代码,运行刚编译的程序

./hello

运行成功后,便会出现我们想要的 “Hello,World!”
在这里插入图片描述

三、编写主、子程序

1.要求
子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。
2.编写、运行程序
打开终端 使用nano编辑器创建并编辑sub1.c文件

nano sub1.c

在编辑器中编写以下代码

float x2x(int a,int b) {
    return (float)(a*b);
}

在这里插入图片描述

保存后退出 随后编写主程序main1.c

nano main.c
// main1.c
#include <stdio.h>

// 声明x2x函数,告诉编译器这个函数在另一个文件中定义
float x2x(int a, int b);

int main() {
    int num1 = 5;
    int num2 = 3;
    float result = x2x(num1, num2);
    printf("The result of x2x(%d, %d) is %f\n", num1, num2, result);
    return 0;
}

在这里插入图片描述
保存并退出 然后进行编译 输入下面这段代码 把主、子文件编译成名为main1的可执行文件

gcc -o main1 main1.c sub1.c

在这里插入图片描述

编译成功后 运行程序

./main1

在这里插入图片描述3.用Makefile方式编程主程序
Ubuntu 桌面版默认没有预装 make 工具 所以我们要安装Ubuntu开发工具合集 在终端中输入以下代码

# 1. 更新软件源
sudo apt update
# 2. 安装全套编译工具(包含make、gcc0
sudo apt install build-essential

继续在终端中,使用文本编辑器创建并编辑Makefile文件 在Makefile 中 gcc 那一行前面不能用空格,必须是【Tab 制表符】,4 个空格≠Tab,这是 Makefile 最经典的报错

nano Makefile

在这里插入图片描述

# Makefile for main1
main1: main1.o sub1.o
	gcc main1.o sub1.o -o main1

main1.o: main1.c
	gcc -c main1.c

sub1.o: sub1.c
	gcc -c sub1.c

clean:
	rm -f *.o main1

在这里插入图片描述
保存退出后进行编译,输入下面代码

make

在这里插入图片描述
编译成功后 运行程序
在这里插入图片描述

四、在windows系统下编译主程序并运行

这里我使用的是Dev c++ 创建项目添加为main.c与sub.c 然后编译运行
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

由图可得结果与Ubuntu中运行得到的结果一致

五、总结

通过本次Ubuntu系统下的C语言编程设计,不仅学会了如何在VMware中安装Ubuntu桌面版的各种版本,还学会了各种Ubuntu操作系统的常用命令语言,学会使用多种编辑器。在学习过程中,必不可少的,遇到了许多大大小小的问题、困难,在借助AI大模型的帮助下我们可以进行更深入的学习和交流,从而掌握新的知识和本领。作为本人在csdn第一次完成嵌入式作业,收获颇丰。从最简单的“Hello,World!”开始,到main1.c和sub1.c运算,最后用了自己以前学习过的Dev c++进行操作,相信这是走向嵌入式非常好的第一步,加油!

参考资料

本文在撰写过程中参考了以下博客内容及网站,学习相关操作思路,代码与实验步骤为本人实操后独立整理:
博主: moreluckyplease
博主: yuanyyyyy111
清华大学开源软件镜像站

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐