工业互联网运维调研

个人有偏颇的理解:工业互联网,是指将嵌入式系统交叉开发(Cross-development)的过程迁往云端。传统的交叉开发就是指电脑主机提供运行编译器、调试器、编辑器和其他实用程序的能力,而目标嵌入式系统板只执行/为它设计的应用程序(因为目标嵌入式板卡一般没有人为输入设备或输出显示器,所以编译和调试实际上都要在电脑主机上完成)。现在需要把编译和调试集成到云端/或者说边缘端设备。

一些有关的调研

1、代码编译有关:

据我所知,如果想将代码编译成符合有关嵌入式目标板的二进制文件一般使用clang有关的命令完成的,具体有4个选项需要设置:

  • 利用target选项指定系统架构,如×86,×64等。
  • 利用-march和-mcpu选型指定CPU类型和指令集。所以仅仅知道系统架构好像不太够,还需要知道具体的处理器型号。
  • 然后还需要使用-Wl,-T选项来指定链接器脚本(前面的同学提到的)。其中链接器脚本定义了生成的可执行文件的布局和内存分配。
  • 最后还需要确保选择适用于有关嵌入式平台的标准库。

2、嵌入式开发板上移植操作系统:

在第一次给嵌入式系统板通电的时候,一般会首先运行一个叫做bootloader的程序,这是需要开发人员自己开发的。

Bootloader一般具有以下几个功能:

  • 初始化关键的硬件组件,如SDRAM控制器,I/O控制器和图形控制器,串行端口的UART的初始化以及以太网控制器的初始化

  • 初始化系统内存,位控制权传递给操作系统做准备

  • 提供定位和加载操作系统映像的机制

  • 加载并将控制传递给操作系统,传递任何所需的启动信息,包括总的内存大小,时钟速率,串行端口速度和其他低级别的特定于硬件的配置数据

很多芯片/或者说处理器上都预装了这样的引导程序,需要根据具体的芯片的用户手册才能知道怎么用。

3、代码调试

传统的处理方式是:一般都在自己的电脑主机上要有终端仿真器,而在目标嵌入式板上要有有关的程序,感觉这一般也是具体的处理器会提供的。但一般此时电脑主机要和目标嵌入式系统板要有串行连接。一般有三种连接的方式:

  • 串行连接主机和目标板:①速度慢;②如果只有嵌入式系统一个串行接口,就不可以在对系统调试的同时,以终端仿真器跟系统交互。

  • 使用网络接口,例如Ethernet的TCP/IP协议:①高带宽;②当使用终端仿真器通过嵌入式设备的串行端口对目标板上的应用进行调试的时候,还可以继续和目标板交互。

  • 直接控制硬件进行调试,通常会使用BDM或JTAG接口。这些接口依靠的是CPU芯片内嵌的BDM或JTAG特殊功能。只要一个特殊的调试器连接到CPU上的JTAG或BDM相关管脚,就可以完全控制CPU的行为。
posted @   碳酸钾K2CO3  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示