TencentOS-Tiny之GCC

交叉编译详解 一 概念篇 本文总结了什么是交叉编译链,并介绍了交叉编译链的各个组成部分 阅读详情

国庆节快乐!

序

本来都已躺在床上准备睡了,但是心情久久不能平静,于是在22:39又爬起来,把第二篇上手文章写一下。

前一篇文章写了如何在MacOS上使用STM32CubeIDE进行搭建开发环境以及代码编译。但是对于习惯于Linux上开发的我,还是不太习惯使用这种IDE集成环境。
今天我则 使用GCC进行编译与烧录。

准备

  • 系统源码 可以使用git clone https://github.com/Tencent/TencentOS-tiny.git
  • GCC交叉编译链 https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads 我当前使用的是 gcc-arm-none-eabi-8-2019-q3-update 版本 百度云盘:链接:https://pan.baidu.com/s/1IMYH_pq5Je7fmnz4YvBqPg 密码:ot50
  • stlink 我下载的版本是 stlink-1.3.0-macosx-amd64 百度云盘:链接:https://pan.baidu.com/s/1_HEmlWDU-MeQYwEbIyHjZA 密码:vnyr
  • 就这些了

安装

其实说是安装,并谈不上。GCC交叉编译链解压缩之后,添加到系统环境变量PATH当中即可,stlink同样的,也是解压缩之后,在解压出的bin文件夹下就可以找到可执行文件。源码……没啥可说的。

编译

使用GCC编译很简单,我们进入到Demo路径:

➜  ~ cd tiny/TencentOS-tiny/board/TencentOS_tiny_EVB_MX/GCC/hello_world
➜  hello_world git:(master) ✗ make

根据电脑配置不同,等待几十秒即可看到编译成功,生成了对应的固件程序。
在这里插入图片描述

下载固件

进入到stlink的目录

➜  stlink-1.3.0-macosx-amd64 ll
total 0
drwxr-xr-x  6 lee  staff   192B 10  1 15:51 bin
drwxr-xr-x  4 lee  staff   128B  1 28  2017 include
drwxr-xr-x  7 lee  staff   224B  1 28  2017 lib
drwxr-xr-x  3 lee  staff    96B  1 28  2017 usr
➜  stlink-1.3.0-macosx-amd64 cd bin 
➜  bin 

然后使用 st-flash 命令进行烧写固件。因为对烧写固件的不熟悉,这里我耗费了不少时间。

第一点就是,之前我根本不知道用哪个程序进行下载固件,在网上查了不少资料,后来灵光一现,搜索到了st-link这个程序。

第二点,下载使用什么命令。这个比较简单了,直接执行程序即可打印出帮助信息:

➜  bin ./st-flash 
invalid command line
stlinkv1 command line: ./st-flash [--debug] [--reset] [--format <format>] {read|write} /dev/sgX <path> <addr> <size>
stlinkv1 command line: ./st-flash [--debug] /dev/sgX erase
stlinkv2 command line: ./st-flash [--debug] [--reset] [--serial <serial>] [--format <format>] {read|write} <path> <addr> <size>
stlinkv2 command line: ./st-flash [--debug] [--serial <serial>] erase
stlinkv2 command line: ./st-flash [--debug] [--serial <serial>] reset
                       Use hex format for addr, <serial> and <size>.
                       Format may be 'binary' (default) or 'ihex', although <addr> must be specified for binary format only.
                       ./st-flash [--version]
➜  bin 

第三点就是,下载地址应该是多少?这里我查询了芯片手册,群里咨询了群友,后来发现,在使用STM32CubeIDE下载程序的时候,其实已经有了提示信息了:
在这里插入图片描述
所以,在这里我们获取到必要信息后,执行命令:

➜  bin ./st-flash write /Users/lee/tiny/TencentOS-tiny/board/TencentOS_tiny_EVB_MX/GCC/hello_world/build/TencentOS_tiny.bin 0x8000000

看到打印输出:

st-flash 1.3.0

2019-10-01T23:21:09 INFO /Users/jerry/Downloads/stlink-master/src/common.c: Loading device parameters…

2019-10-01T23:21:09 INFO /Users/jerry/Downloads/stlink-master/src/common.c: Device connected is: L43x device, id 0x10016435

2019-10-01T23:21:09 INFO /Users/jerry/Downloads/stlink-master/src/common.c: SRAM size: 0xc000 bytes (48 KiB), Flash: 0x40000 bytes (256 KiB) in pages of 2048 bytes

2019-10-01T23:21:09 INFO /Users/jerry/Downloads/stlink-master/src/common.c: Attempting to write 37816 (0x93b8) bytes to stm32 address: 134217728 (0x8000000)

Flash page at addr: 0x08009000 erasedEraseFlash - Page:0x12 Size:0x800

2019-10-01T23:21:10 INFO /Users/jerry/Downloads/stlink-master/src/common.c: Finished erasing 19 pages of 2048 (0x800) bytes

2019-10-01T23:21:10 INFO /Users/jerry/Downloads/stlink-master/src/common.c: Starting Flash write for F2/F4/L4

2019-10-01T23:21:10 INFO /Users/jerry/Downloads/stlink-master/src/flash_loader.c: Successfully loaded flash loader in sram

size: 32768

size: 5048

2019-10-01T23:21:11 INFO /Users/jerry/Downloads/stlink-master/src/common.c: Starting verification of write complete

2019-10-01T23:21:11 INFO /Users/jerry/Downloads/stlink-master/src/common.c: Flash written and verified! jolly good!

➜ bin

提示下载成功。

运行

下载完程序之后,板子自己就可以重启运行程序,有时候可能需要自己手工按下重启或者重新上电,然后就可以看到刚才编译的程序运行起来了。

是不是比使用IDE简单?!哈?!

疑问

虽然程序运行起来了但其实我到现在也还是不太明白,希望有清楚的朋友告知我:

hex bin elf 三种文件,为什么只有下载bin文件才有效?

hex文件也可以下载成功,但是上电之后没有任何反应,这让我觉得很奇怪。

012 基于YOLOv4-Tiny的目标检测系统 常用包括车辆、行人、飞机、轮船、猫、狗、马、鸟、羊、自行车、瓶、椅子、火车、沙发、餐桌、电视机、盆栽植物等几十个类别进行检测和识别。)加载摄像头进行检测:可以选择摄像头进行目标检测,系统将检测和识别后的结果标注在图像流上并在界面上自动展示。)加载图像进行检测:可以选择图像进行目标检测,系统将检测和识别后的结果标注在图像上并在界面上自动展示。)加载视频进行检测:可以选择视频进行目标检测,系统将检测和识别后的结果标注在视频上并在界面上自动展示。界面的背景、按钮等,界面的操作和相关的代码都有详细的注释。 阅读详情

相关推荐

根据Keil项目文件修改成tiny的Makefile

文章目录浅谈STM32CubeIDE我的感受修改方法标准Makefile的样子寻找目标Keil文件头文件源码文件BUG修复结语 浅谈STM32CubeIDE 前面文章有写,我上手时采用了IDE,但后来实践中,我再也没打开过STM32CubeIDE,原因比较多吧, 启动太臃肿 配置复杂 电脑配置差 用着不爽 …… 当然后两点纯粹个人原因 哈哈 实际学习中,我基本上是采用的gcc+sublime ...

YearIllusion的博客 1753

深度学习(三)——tiny YOLO算法实现实时目标检测(tensorflow实现)

一、背景介绍 YOLO算法全称You Only Look Once,是Joseph Redmon等人于15年3月发表的一篇文章。本实验目标为实现YOLO算法,借鉴了一部分材料,最终实现了轻量级的简化版YOLO——tiny YOLO,其优势在于实现简单,目标检测迅速。 [1]文章链接:https://arxiv.org/abs/1506.02640 [2]YOLO官网链接:https://pj...

QQ704630835的博客 3万+

TencentOS tiny使用mqtt连接腾讯云iothub Demo使用

文章目录创建云修改源码创建项目Makefile宏定义追根溯源数据上云总结 在前面的文章中,我们已经可以使用mqtt进行通信了,这次我们使用官方提供的Demo,通过mqtt连接腾讯云的iothub进行通信。 创建云 首先需要拥有腾讯云的账户,并且开通腾讯云iothub,链接在这里:腾讯云登陆地址 拥有了云,我们需要创建我们自己的产品和设备,具体步骤请参考以下截图: 修改源码 然后,我们...

YearIllusion的博客 2341

OpenCV之YOLOv2-tiny目标检测

YOLO(You Only Look Once)是一种基于深度神经网络的目标对象识别和定位算法,其特点是运行速度快、实时性高。这里我们将使用Tiny YOLOv2版本的YOLO算法。YOLO算法创造性地将R-CNN目标检测中的选择候选区和识别候选区对象两个阶段合二为一,这也是YOLO名字的来由(只需看一眼就知道图片的哪些位置有什么对象)。YOLOv2-tiny,轻量版的YOLOv2,即使用Tiny YOLOv2来实现目标检测。Tiny YOLOv2包含9个卷积层和6个最大池化层,如图所示。

风间琉璃的博客 2276

避坑指南:在Keil AC6编译器里玩转现代C++(STM32版)

本文为嵌入式开发者提供了在Keil MDK环境下,使用AC6编译器为STM32项目引入现代C++的详细避坑指南。内容涵盖从C到C++的思维转换、AC6编译选项的精准配置、C/C++混合编程的关键技巧、彻底解决半主机模式陷阱的方法、嵌入式环境下的内存管理策略,并以适配TencentOS-Tiny为例进行实战演示,旨在帮助开发者安全、高效地利用C++特性提升嵌入式代码质量。

weixin_29194693的博客 242

嵌入式开发学习路线:从裸机到Linux的进阶指南

嵌入式系统开发涉及从底层硬件控制到上层应用构建的完整技术栈。其核心原理在于通过软件指令直接或间接操作硬件资源,实现特定功能。在技术价值上,嵌入式开发连接了物理世界与数字世界,是物联网、智能硬件、工业控制等领域的基础。应用场景广泛,从简单的单片机控制到复杂的多任务系统均涵盖其中。裸机开发直接操作寄存器,适合实时性要求高、资源受限的场景;而嵌入式Linux则提供了丰富的系统服务与软件生态,适用于功能复杂的设备。对于初学者而言,掌握裸机编程是理解计算机体系结构和硬件工作原理的基石,有助于后续深入学习Linux驱动

369

YoloV4训练自己的数据集(六)之Yolo -Tiny

前文已经把YoloV4的训练以及测试介绍结束了。本文主要介绍YoloV4-Tiny网络的训练与使用。请大家一定要看完前面几个博客。 1.修改配置文件 YoloV4-tiny是简化版本的YoloV4,主要是为了满足计算能力紧张的开发者使用和学习。YoloV4-tiny在准确度上会有相当的下降,但是在运算时间上,也会有相当大的提升。下面我回简要介绍使用YoloV4-Tiny进行训练以及测试。关于数据集的建立以及网络的编译等过程均已在之前的博客中做过介绍,此处不再赘述。本文直接讲如何修改配置文件。 1.1修改vo

weixin_45718019的博客 5551

yolov3-tiny原理解析及代码分析

从去年十一月份开始学习yolo神经网络用于目标识别的硬件实现,到现在已经六个月了。一个硬件工程师,C/C++基础都差劲的很,对照着darknet作者的源码和网上东拼西凑的原理讲解,一点一点地摸索。刚开始进度很慢,每天都感觉学习不了几行代码,到后来慢慢的入了门,每周都有不菲的收获和重大的进展。总结一下自己这大半年的学习,记录一下心路历程,也为躬耕于此的有缘人提供哪怕一点点的帮助吧。

点赞的都能无bug通过! 5396

TencentOS-Tiny在苹果MacOS初上手

文章目录序言环境开始源码工具下载安装和使用配置生成内核文件夹Tiny在IDE中添加相关的引用添加代码编译 序言 即将进入万物互联的时代,身边将会涌现出一大批物联网设备。低成本+低功耗+联网将是最重要的需求。作为一名习惯了Linux上开发软件的程序猿,深感压力。适逢国产物联网正大力宣传,借此东风开始学习物联网操作系统上的开发工作。 未来将记录几篇学习的文章,即为了沉淀知识,也为了给后进场的程序猿们...

YearIllusion的博客 2612

小熊派嵌入式系统移植TencentOS-tiny并实现M26/EC20与MQTT的对接及接入腾讯云平台IoThub

本文介绍了如何将TencentOS-tiny操作系统移植到小熊派开发板上,并通过M26/EC20模块实现与MQTT的对接,最终将数据接入腾讯云平台IoThub。通过这样的方案,开发者可以快速搭建起嵌入式物联网系统,并实现设备与云端的数据传输与交互。请注意,以上代码仅为示例,实际应用中需要根据具体需求进行相应的修改和优化。同时,开发者还可以进一步探索TencentOS-tiny和腾讯云平台的其他功能和特性,以满足更复杂的物联网应用需求。

DaxqScratch的博客 198

箱式连续提升机

箱式连续提升机,是对具有高度差较大(>1500mm)的输送线之间进行连接,将箱式物资进行连续输送的提升(或下降)的输送设备,可根据输送线的具体输送要求作相应的参数设计。目前的箱式连续提升机种类比较多,常用的形式主要有Z型和C型,工作原理相同,只是入口和出口分别在两侧和同侧。

月生沧溟 1241

2021SC@SDUSC TencentOS Tiny源码分析(一) 项目综述

2021SC@SDUSC TencentOS Tiny源码分析(一) 项目综述 2021SC@SDUSC 文章目录2021SC@SDUSC TencentOS Tiny源码分析(一) 项目综述一、TencentOS Tiny 简介二、 TencentOS tiny 主体架构:三、 TencentOS tiny 优势(1).小体积(2).低功耗(3).丰富的 IoT 组件(4).可靠的安全框架(5).良好的可移植性(6).便捷的调试手段四、移植编译五、项目分工 一、TencentOS Tiny 简介 Tenc

xl_tsinghua的博客 783

以ATT&CK为例构建网络安全知识图

随着攻击工具、方法的逐渐升级和复杂化,安全数据的大规模融合,攻防对抗愈加激烈。安全团队如何在浩瀚数据中有效发现高级威胁的蛛丝马迹,如何把网络安全专家的经验、知识有效转化为可复制可扩展的数据分析能力,如何将对抗高级威胁的“炼金术”逐步升级为科学淘金指南,如何将安全从业者从繁重的体力劳动中解放出来,愈发成为安全能力亟需突破的难点和重点,也是我们正在探索的方向。正如医疗行业中治疗疑难杂症依赖医疗专家,网络空间高级威胁的防护和处置也依赖安全专家的经验与知识。

2401_88752684的博客 1085

物联网RTOS新贵-TencentOS tiny入门

1 前沿 让我们先简单回顾下物联网(The Internet Of Things)的历史, 1999年,物联网概念第一次被提出; 2009年,“感知中国”的概念被提出,物联网被正式列入国家新兴战略性产业之一; 2013年,Semtech LoRa技术商用; 2016年,NB-IoT R13核心技术标准的冻结,全球运营商有了基于标准化的物联网专有协议,窄带物联网迎来规模商用; 2...

nich2009的专栏 5589

Win10下Altera USB-Blaster驱动安装详解:禁用数字签名与排查指南

在嵌入式开发和FPGA调试过程中,驱动安装是工程师绕不开的环节,尤其是当操作系统对驱动签名有严格限制时,硬件往往无法被正常识别。数字签名是系统验证驱动程序来源和完整性的重要机制,Win10出于安全考虑,默认拒绝加载未经签名的驱动,这正是Altera USB-Blaster下载器在设备管理器中显示未知设备或黄色感叹号的根本原因。通过理解设备管理器的排查逻辑,掌握临时禁用驱动强制签名或开启测试模式的方法,配合正确的驱动文件路径选择与手动安装操作,即可解决Quartus无法检测到下载器的问题。这一流程同样适用于许

weixin_29164497的博客 233

Oracle数据库安装及配置(Oracle19c)

Windows 10安装Oracle 19c教程

weixin_69200200的博客 2万+

STM32开发,体验腾讯RTOS-tencentos-tiny

STM32开发,体验腾讯RTOS,tencentos-tiny1 概述1.1 资源概述1.2 tencentos-tiny简介2 程序开发 1 概述 1.1 资源概述 开发板:ST官方NUCLEO-F103RB开发板 主控芯片型号:STM32F103RBT6 1.2 tencentos-tiny简介 腾讯物联网终端操作系统(TencentOS tiny)是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,安全可靠等特点,可有效提升物联网终端产品开发效率。TencentOS tiny 提

weixin_46623350的博客 5928

钢铁雄心4存档修改全攻略:从基础设置到高级玩法(附国家代码表)

本文详细解析《钢铁雄心4》存档修改技巧,从基础设置到高级玩法全覆盖。包括存档文件位置、格式转换、国家实力调整、国际关系修改等实用内容,并附赠国家代码表。掌握存档修改技能,解锁游戏全部潜力,实现精细参数控制,超越控制台指令的局限。

weixin_29233857的博客 1416

痞子衡嵌入式:把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(1) - 开发环境搭建与点灯...

  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1062 TencentOS Tiny EVB_AIoT开发板环境搭建与点灯。   腾讯 TencentOS 团队于2021年12月8日联合恩智浦半导体、安谋科技发起了一个线上开发者活动 - TencentOS Tiny AIoT 应用创新大赛。为了这个大赛,腾讯 TencentOS 团队联合恩智浦半导体、厚德物...

痞子衡嵌入式 1991

PyTorch深度学习实战(7)——批大小对神经网络训练的影响

在神经网络中,批( batch )是指一次输入网络进行训练或推断的一组样本。批处理( batch processing )是指将这一组样本同时输入网络进行计算的操作。本节中首先介绍批( Batch )的基本概念,并且介绍批大小在神经网络训练过程中的影响。

盼小辉丶的博客 1万+

ISO 21434汽车网络安全标准深度解读系列(十):标准实施总结与展望

ISO21434标准深度解读系列总结篇系统回顾了汽车网络安全标准的核心内容与实施要点。文章梳理了10篇系列文章的结构体系,提炼出标准的三大核心价值:系统性方法(全生命周期覆盖、多层次管理)、风险导向理念(威胁驱动、动态管理)和供应链协同机制。总结了实施经验中的关键要素,包括高层承诺、专业团队建设,并提出了分阶段实施路径建议。同时分析了当前面临的技术挑战(系统复杂性、新兴技术)和管理挑战(文化转变、资源投入)。最后展望了AI应用、零信任架构等技术发展趋势,以及标准未来的演进方向,为企业实施提供战略与执行层面的

VehSwHwDeveloper的博客 551

stm32车联网监控源码_腾讯的物联网操作系统,内核移植起来比你想象的要简单!...

可能很多人都听说了,就在前几天,腾讯公布了面向物联网领域开发的实时操作系统:TencentOS tiny。一、介绍TencentOS tiny的内核就是一个RTOS内核,与我们常见的RTOS有很多类似之处。比如:任务管理、实时调度、时间管理、消息队列、信号量、互斥锁、事件标志等。其实,更重要的是上层的Iot SDK,这一套协议栈主要用于快速接入腾讯云,同时,结合上层的安全、组件等框架实现...

weixin_39853892的博客 554

一.镜头知识之焦点,焦距,有效焦距,前焦距,后焦距

由光学系统中镜片的最后一面到像面的距离。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 5536

TencentOS-tiny 移植到STM32F407(MDK)

一、移植前的准备工作 1. 硬件(STM32测试版) MCU:STM32F407VET6(RAM: 196K ,FLASH: 512K,最高168MHz工作频率) 晶振:8MHz 2. 软件 编译器环境:MDK uVision V5.33.0.0 STM32cube 初始化代码生成器:STM32CubeMX Version 6.20 3.裸机工程 使用STM32cubeMX生成裸机代码,详细过程请百度一下。 二、移植TencentOS-tiny 1.TencentOS-tiny...

CynalFly的博客 1540

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

yolov7(同样适用于yolov7-tiny)训练自己的数据集

windows上使用自己的数据集训练yolov7-tiny

qq_59810830的博客 4380

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: TencentOS-Tiny在苹果MacOS初上手
下一篇: TencentOS-tiny官方开发板EVB_MX上手Demo
YearIllusion
博客等级 码龄16年 8粉丝 7原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值