杨为民 发表于 2023-6-1 06:53:17

STCx51虚拟单片机与编译器(6):泰山x51-RTOS与长缨8软件工具链简介

本帖最后由 杨为民 于 2024-2-29 17:03 编辑

一、前言本文使用的STC单片机软件工具链为:1.单片机                STC8H8K64U2.开发板                STC实验箱 V9.33.集成开发环境             STCIDE-V014.编译器               长缨8 C351编译器5.实时多任务操作系统         泰山x51-RTOS6.   代码下载器            STC-ISP 二、STC单片机与开发板(1)本文范例使用的STC实验箱V9.3(用STC8H8K64U单片机),其外观与V9.4(用STC32G12K128单片机):
三、STC集成开发环境
(2)STC集成开发环境“StcIde.exe”是一款免安装的绿色软件,直接点击就可以执行,并自动注册各种信息。下图是其打开的界面:
(3)STC集成开发环境可以选择中文或者英文界面,可以进行各种设置。STCIDE与Keil集成开发环境高度兼容,其操作方法与Keil类似,它也可以直接读取Keil的项目文件,STCIDE的文本编辑界面比Keil更加友好。(4)STCIDE目前可以直接使用STCC351编译器对STC8051系列的单片机程序进行编译和连接,如果没有错误就会生成HEX烧录文件。
下面是使用STCIDE对项目进行操作的过程视频:
四、长缨8 C351编译器(5)目标为STC8051系列单片机的STCC351编译器的内部名称为“长缨8”。长缨8是专门为编译RTOS程序设计的,包括通常的前后台程序是实时多任务程序。(6)长缨8采用32位单片机和计算机的C语言规范,除了“main”函数和中断服务程序(这两类函数不允许重入),所有的函数都是可重入的。长缨8缺省使用XDATA,用户也可以用“data”和“idata”关键字来指定变量的存储空间。(7)长缨8使用的C351语言是单片机C语言的一个子集,子集的大小以满足RTOS程序设计为限,并采用最简单的语法以方便C语言初学者掌握。(8)长缨8使用A351汇编语言,A351语言是A8051语言的超集,除了包括全部8051汇编语言外,还虚拟的80351 CPU为模型增加了16位和32位的通用寄存器和操作指令,包括但不限于整数的加减乘除和32位浮点数的加减乘除运算。五、泰山x51-RTOS(9)泰山x51-RTOS是专门为验证长缨8编译器C351/A351语言能力研制的抢占式实时多任务操作系统。由于其中使用了A351汇编语言,因此只能用长缨8来编译,不能用C51来编译。(10)泰山x51-RTOS的用户接口以uC/OS-II为参考模型,用户可以参考各种uC/OS-II资料来辅助自己编写RTOS程序。但是与uC/OS-II相反的是泰山x51-RTOS采用“微内核”架构。(微内核的操作系统有:Windows、Minix、Mac等等,宏内核的操作系统有:Unix、Linux)(10)泰山x51-RTOS是分模块设计的,模块分三类:RTOS核心模块、RTOS扩展模块和设备驱动模块。本文范例就包含了RTOS核心模块“TSx51_SYS_RTOS_V11_STC8H.OBJ”、STC8H基本驱动模块“TSx51_DRV_MCU_80x51_STC8H.OBJ”和8位数码管设备驱动模块“TSx51_DRV_STCBOX_V93_STC8H.OBJ”。(11)本文范例包括了5个实时任务,其中优先级最高的任务0是控制台任务,它从串口1接收命令行,任何解释执行该命令。
下图是任务0的程序:

(12)任务0接受4个命令,它们的格式如下:1. 命令 T HH:MM:SS 设置时间。2. 命令 R n 运行第n个任务。3. 命令 P n 暂停第n个任务。4. 命令 S xxxx 送字符串到 第1个任务。字符串xxxx是用逗号分开的两个浮点数,比如123.4,-5678.9,然后这个字符串就被送个任务1取做加法处理。下面是本文范例运行的视频,从视频中可以看到手工如何从串口助手输入和发布命令,然后可以从串口输出和数码管的显示看到命令执行后果。值得说明的是任务2、任务3和任务4都使用数码管,如果打开了它们中不止一个的任务,数码管显示会发生混乱显示。
下面是本文范例运行的视频效果:

下面是本文范例和STCIDE:

杨为民 发表于 2024-4-6 13:19:09

这是去年儿童节的旧文,今天看到STC的官宣,
又一种新结构的STC单片机要问世了:

儿童节出来的,STC8051H, TFPU + STC32位8051
===通过努力提高 TFPU 的主频,高于CPU的主频
TFPU@108MHz, CPU32@43MHz
管脚兼容 STC89C52RC / STC12C5A60S2

真有一种“洞中才数日,世上已千年”的感觉。
随着STC单片机硬件的步步创新,
长缨系列的C351编译器也会不断跟进,
支持STC单片机从32位到64位。


曾经天山求剑,
又去泰山登顶。
今日长缨在手,
来日相伴苍龙。


qizhiguang 发表于 2024-4-6 18:01:43

没有搜到长缨C351编译器

杨为民 发表于 2024-4-6 18:48:54

qizhiguang 发表于 2024-4-6 18:01
没有搜到长缨C351编译器

已经集成在“0000_STCIDE-V0.1\BIN”目录下,文件名为“stc-51.exe”

13529340673 发表于 2024-4-9 09:22:05

STC IDE 有新版吗?

qizhiguang 发表于 2024-4-9 17:58:11

杨为民 发表于 2024-4-6 18:48
已经集成在“0000_STCIDE-V0.1\BIN”目录下,文件名为“stc-51.exe”

谢谢,找到了。我觉得KEIL对STC来说有瓶颈了。真的应该有一款适合自己的编译器才能让STC更快更强

gupeng 发表于 2024-5-22 20:45:34

STCIDE,是不是还要调用keil的一些文件啊,调用的话是不是还是侵权KEIL啊

18681500058 发表于 2024-7-21 15:51:32

gupeng 发表于 2024-5-22 20:45
STCIDE,是不是还要调用keil的一些文件啊,调用的话是不是还是侵权KEIL啊

只管用就好了.

soma 发表于 2024-7-21 19:43:16

18681500058 发表于 2024-7-21 15:51
只管用就好了.

长缨8是独立编译器吧,不会使用keil

逍遥派掌门人 发表于 2024-8-1 09:23:06

这个工具链能在linux里用吗?
页: [1] 2
查看完整版本: STCx51虚拟单片机与编译器(6):泰山x51-RTOS与长缨8软件工具链简介