| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> Nuttx学习笔记(二)————在STM32上部署Nuttx系统 -> 正文阅读 |
|
[嵌入式]Nuttx学习笔记(二)————在STM32上部署Nuttx系统 |
目录 二、在ubuntu下使用串口来烧录至目标文件至STM32F07 (一)什么是OpenOCD(Open On-Chip Debugger) 一、平台配置在这里选择的芯片为
之后选择stm32f4上部署我们的操作系统:
-l表示告诉用户是在Linux上构建的。构建的时候可以看到我们stm32的库文件,已经被包括进去了: 之后输入 ? 那么接下来是要将这个 二、在ubuntu下使用串口来烧录至目标文件至STM32F07(一)ubuntu下stm32flash工具下载GitHub:https://github.com/ARMinARM/stm32flash 这个工具的作用如下: 在nuttxspace下新建一个stm32flash文件夹,将GitHub上面的代码clone下来:
之后在当前目录下进行编译: 出现错误: 打开
? 之后即可编译成功: ? 执行命令安装stm32flash:
?安装成功提示: 这个工具的用法可以输入 ? 获取设备信息:
(二)Ubuntu20.04安装stm32开发环境
这一步是要安装运行在x86平台的gcc编译器,而这个编译器编译出的代码是要在ARM平台(stm32)上跑的,因此这种编译器被我们称之为 那么首先我们要进入官网:Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer下载对应的交叉编译器: 解压并且重命名为 ? 之后我们将我们的bin路径添加到环境变量中:
之后重启终端,如果输入arm-none-并按下两次Tab键并且能自动补齐,那么则说明环境变量添加成功: 上面是安装交叉编译器的一种方法,其实也可以简单粗暴的进行:
下面是安装其他的一些依赖
所需软件有:STM32CubeMX、VSCode、GNU Arm Embedded Toolchain、Mingw-w64。 进入STM32CubeMX官网进行下载:my.st.com 那么具体的安装网上有很多。 安装VSCode:Download Visual Studio Code - Mac, Linux, Windows 下载后执行:
需要安装的插件: (三)将nuttx.bin文件烧录进stm32烧录之前首先得看看开发板的数据手册,将其进入系统烧录模式,STM32具有三种启动模式:
可以执行如下命令得知stm32的状态,使用USB-TTL设备连接并进行镜像烧录,执行:
出现报错:
这个问题网上说只要boot键设置得对,再复位一下就可以了。 之后使用如下命令烧录文件:
即可将操作系统烧录进去。之后将Boot0以及Boot1全部置为0,然后重新上电,之后使用串口登陆stm32:
三、ubuntu下使用OpenOCD进行烧录nuttx系统在当前的快发环境下,嵌入式工程师都会十分熟悉自己项目使用到的调试器还有调试软件,比较熟悉的有JTAG、SWD、CMSIS-DAP等,那么这些东西的工作原理是什么,可能未必都是清楚的,那么就首先进入什么是OpenOCD这一栏吧: (一)什么是OpenOCD(Open On-Chip Debugger)OpenOCD是一款开源软件,他的功能是在仿真器的辅助下完成的,仿真器是能够提供调试目标的电信号的小型硬件单元。仿真器也是必须的,因为调试主机(运行OpenOCD的主机)通常不具备这种电信号的直接解析功能。(这个仿真器也就是我们一直使用的J-Link等设备)。 仿真器支持一个或多个传输协议,每个协议涉及不同的电信号,且使用不同的协议栈进行消息传输。它有时候也会被封装成独立的加密狗,称为硬件加密狗。一些开发板上面直接集成了硬件接口加密狗,这样可以使开发板通过USB直接连到主机上进行调试。
JTAG支持仿真器支持JTAG信号,可以用来进行TAPs和目标板子之间符合JTAG协议的通讯。TAP是处理特殊指令和数据的单元。JTAG支持调试和边界扫描。 SWD信号支持与一些比较新的ARM芯片进行通讯,而且还可以作为同时支持JTAG和SWD的芯片的仿真器。不过SWD支持调试,不支持边检扫描。 对于一些芯片,还有专门的编程下载器,这些下载器仅支持擦写flash的功能,不支持调试和边界扫描。对于此类专用下载器,OpenOCD并不支持。 (二)安装OpenOCD官网下载:OpenOCD - Open On-Chip Debugger download | SourceForge.net 解压后进入目录中,并且在终端打开:
因为我是用的是
之后可以使用 出现问题:
之后就可以看到: 在这里需要注意的是,OpenOCD可以使用gcc和clang两个编译器进行编译,但这个OpenOCD有个bug,需要忽略warning,我们再进行设置一下:
?设置完后进行
之后执行 如果后续需要卸载openocd,那么我们需要执行: (三)运行安装好OpenOCD后,我们需要根据操作系统,设置访问debug适配器的权限。在Linux系统上,通常会涉及
最后可以看看openocd的服务,可以输入
?如果没有输入
其他命令可以在该文件夹的 使用 (四)使用OpenOCD烧录nuttx.bin首先熟悉一下OpenOCD的指令:
?那么我们进入nuttx文件中,执行如下:
那么这个时候我们已经将系统烧录进去了,然后我们可以打开minicom,我们终端的指令是在串口打印出来的,所以我们需要有一个
这样子就成功部署啦!!? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:27:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |