嵌入式(一)
前言
本文主要介绍嵌入式系统程序设计基础,包含在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
清华大学开源软件镜像站
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)