基于STM32MP157的嵌入式LINUX开发

老师您好,我是一名嵌入式LINUX的初学者,使用的开发板是STM32MP157.
目前我已经学习了开发环境的搭建、开发文件的互传、编译及makefile的使用,亲自验证了LED驱动和网络编程示例。通过近期的学习我对linux开发过程有了更多的了解,但也有一些疑惑。现在有几个问题麻烦您解答一下。

1、软件的运行
在单片机程序中,我们把执行函数放置在main函数中,将中断处理放在中断函数中,上电即可运行;但是在linux系统中,如何实现上电运行呢?我现在只能实现的是 gcc ubuntu编译arm板可以运行的文件,然后将文件复制到arm板上,使用linux的命令行控制文件运行。

2、学习的模板
在单片机学习时,我们可以找到大量的模板,有些工程甚至可以直接打开编译;请问在linuxC的编程中,一般学习的模板从哪里获取?

3、文件的编译
我实操了linux环境下建立TCP server和client的程序编写,编译,运行。在上述过程中,需要将文件在window环境下编写,然后经filezilla传输至linux,然后在linux环境下编译。这个过程对于文件的编译是必须的,但是在代码编写的过程中,代码编写人员或多或少会出现一些拼写错误,请问有没有什么方法,可以在windows环境下就能检查出此类错误,甚至说在window环境下都能把程序运行实验一下,没问题了再上传到linux下编译?

我也是初学者,以下仅供参考,思路应该是可以得,细节可能会出错。

  1. 在32中,有一个汇编写的启动文件,大概叫startup.s,它里面初始化了一些堆栈,设置好中断向量表,然后跳去main执行
    在linux中,也是差不多的,arm默认上电会去一个地址取指令执行,单片机程序放的是启动文件,linux放的是bootloader的地址,bootloader进行初始化然后把linux内核加载进去,并启动第一个程序init,这个祖先程序会去启动应用程序,你可以设置init去启动哪些程序,怎么设置得自己去查了,好像是某个文件。
  2. 拼写错误source insight可以看出来的吧,至于你想要keil那种效果,有时间可以去配置vscode,去包含内核源码路径,是可以有那样得效果得,但是可能是我配置没整对,vs搞得很卡。

谢谢兄弟指导。
我找到了这篇文章,现在已经配置好了vscode。

我搜索到的解决方法有两种,我目前使用的是第二种
1、使用vscode的ssh登录功能登录ubuntu进行代码开发
2、使用vscode的目录包含功能将linux的include文件夹进行包含,就可以避免库文件报错,同时具有代码提示功能。

更新:2022-11-4 13:02:07
关于ssh方法登录,可以参考这个链接,我是按照这个链接的方法配置好的。

1 个赞