在本文中你可以学到什么?
STVD的安装以及COSMIC STM8编译器的安装以及简单使用
STVP的新建项目以及二进制固件的上传
ST-Link与STVD的联合使用
STM8CubeMX安装以及简单探索
STMStdio安装
STVD以及STVP的作用在下面的截图内
这个是我们这次要用到的所有软件,里面没有破解软件
大家可以放心使用
官方的编写环境是STVD
还有IAR的编辑环境,其实IAR的功能可能更加的强大一些,但是哪个收费还得破解,而且现阶段也不是挑工具的时候。先安装官方的软件来进行学习。
https://www.st.com/content/ccc/resource/technical/software/sw_development_suite/group0/88/c0/fe/00/9a/30/4d/c0/stvd-stm8/files/stvd-stm8.zip/jcr:content/translations/en.stvd-stm8.zip
点击这个链接进去注册下载,不需要科学上网
注册用邮箱接收,下载
安装包
安装好的首次打开
同时还有stvd 的下载器,需要设置使用
这个是STVP的默认打开的空白页面
STVD首次使用需要新建一个工作空间,按照图中来进行新建
我们先新建一个空白的项目,然后在加东西
我这个地方关于项目的建立,还没有这么简单的事情
为了不污染目录,先建立一个文件夹
设置一下项目的名字
到现在的时候,,,,我们其实还没有编译器。
我们此时得把编译器整一下
https://www.st.com/zh/development-tools/stm8-software-development-tools.html#
这个是我们要下载编译的官网
STM8的特定功能包括:
ANSI和ISO C编译器
Cosmic stm8编译器遵循ANSI和ISO规则和约定。所有代码和库都针对stm8处理器内核进行了优化。支持所有stm8派生类和子家族。
可重入和递归
对于所有编程模型,所有代码都使用标准ANSI堆栈框架约定完全可重入和递归。
内存模型
CXSTM8支持4种编程模型选项,以根据您的应用程序和内存要求微调代码优化。
零页面编译器源扩展的C支持
可有效利用stm8短寻址模式和单字节指针。
BIT变量
除了标准ANSI C位字段之外,CXSTM8还使用_Bool关键字支持单个位变量,从而为true / false标志提供了一种简单有效的位打包机制。
内联汇编
编译器提供了三种方便的方法来在C程序中添加汇编代码。包括参数传递机制。
绝对列表
可选地产生可重定位和/或绝对C并散布在相应的程序集列表中。
IEEE-754浮点
支持具有完整ANSI库的IEEE单浮点格式(包括源代码)。
可移动代码功能
可移动代码功能旨在使基于RAM的代码(如引导加载程序和程序员)易于创建和维护。链接器会在ROM中自动创建一个段来存储可移动代码。然后在运行时,使用提供的库函数来重定位并将可移动代码复制到RAM中以供执行。
校验和功能
易于使用的校验和功能和库(包括源)使用户可以在任何或所有部分上快速实现高效的校验和。校验和的计算和插入由链接器透明地管理。
混合的C和Assembly
Cosmic工具支持混合的C和Assembly应用程序。包括对C的汇编程序支持#defines和#includes,以便C和汇编语言模块可以共享公共常量和宏。
主机无关格式
Cosmic可重定位和绝对对象格式与主机无关。这允许用户在PC,SUN和HP上共享对象以进行链接和调试。
IEEE-695和ELF / DWARF调试支持
Cosmic编译器套件支持许多流行的仿真器和逻辑分析仪使用的IEEE和ELF DWARF标准调试格式。
在线仿真器兼容性
CXSTM8与所有现有仿真器兼容。
灵活的编译器接口
Cosmic编译器的功能强大而又灵活,因此实际上可以在任何环境中使用。使用Cosmic自己的IDEA界面或使用您喜欢的编辑器,制作实用程序和/或源代码控制系统-这是您的选择!
http://www.cosmicsoftware.com/stm8.php
我们安装STM8 Free特别版
需要注册获得,自己搞一下
科学上网也不快
此时让编译器先下载中,我们看看还有什么别的软件。
发现了这个,先下载再安装
安装后打开的样子,很棒的样子。日后再研究
https://www.st.com/zh/development-tools/stm-studio-stm8.html
我们还发现了CubeMX,对于配置STM32的引脚这个可是神器
没想到STM8也有,必须下载下来看看
https://www.st.com/zh/development-tools/stm8cubemx.html#get-software
最后问你是不是要保存安装脚本
这个是哪个脚本,我下载并且看了看
打开以后,首先是配置目标芯片。如果你是3.8的芯片
就是按照我图中的来
可以看到封装形式和我的芯片对应上了
点点击一个引脚,右键,可以看到可以配置的功能。不是太丰富,但是刚刚够用就好~
我们再试一个脚
再看一个
左侧是更加详细的配置
我首先看了UART,可以看到是很丰富的。和我们看得数据手册一致
定时器也是可以去配置
SPI也是可以来配置的
还有STM家引以为傲的时钟树配置,这个很有说头,我们日后再来说
对了,视角切回来。编译器下载过后就是安装,一步一步的点就好
最后会弹出这个,我们这里点这个web
弹出自带的IE浏览器,有点感慨,多少年没有用了。
注意会出现一个验证码,你输入以后在submit。才会给你发送密钥
邮箱大概1分钟?就会发送消息过来
我保存在了桌面
然后在桌面点击编译器的Logo来打开
点击加载本地密钥
选中给你发送的密钥,就好了~~~
注意你要填这个地方,把你安装好的编译器的路径加载进去
选择我们的芯片
这个图上结合我们上面的哪个工具链的哪个图,你需要把编译器的路径传给你的项目,STVD就是一个编辑器,没有什么编译功能,需要你知道。事实上所有的编程语言都是这样,都是编译器+编辑器而已。你学软件学的是编译器的使用,不要说是学的一个什么编辑器的使用,会被笑话的。
我们可以看到左边的目录树
先点开一个main文件看一看,有什么。
一个骨架,mian没有返回值,而且还有一个死循环
这个就是上文说的编译器的路径,并没有什么bin目录。
直接就是在路径里面。。。有点奇怪的设计方法
C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8
----------- Project demo - STM8 Cosmic - Configuration Debug -------------
Compiling main.c...
cxstm8 +debug -pxp -no -l +mods0 -pp
-i"C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\Hstm8"
-clDebug\ -coDebug\ main.c
main.c:
main.o - 0 error(s), 0 warning(s)
以上是编译后的窗口的输出值,可以看到很多有趣的东西。
编译器的名字,传递的参数,以及编译的头文件。可以看到出来的是一个o文件,还没有被组装其他的库,我们现在只能说,我们的编译器和我们的编辑器工作正常离写代码的路还有一些距离,慢慢来。
文中所指就是STM8特有的编译器
这个是上文-i参数链接的库
注意一下这个连接,连不对的话是没有什么反应的
要连接3.3v+GND
SWIM+重置引脚。四个脚,这样连接的话,你就可以不用连接外置的电源
注意看这个小东西
连接好的样子
STVD要配置一下
选最后一个,我是link v2.也选这个
USB
点开始调试
选择目标
可以看到是加载打开了一个elf可以执行的文件
C:\Users\yunswj\Documents\STVD\Debug
目录在这里
我们也可以看看下面这些目录,这个是gdb的窗口。可以用更加高明的参数来调试,我以后再写这个。这个东西强大的很。
可以看到编译的一些日志吧,也是比较有用的地方
点右键的话,可以看到弹出来的一些菜单
更特别的是,可以看到汇编的窗口
STVP的用法比较简单,第一次是让你选择芯片
我们左上角打开一个S19的文件
是一个摩托罗拉的文件
这个地方我们研究逆向的时候可以参考
这个地方下载,点一下
有相应的log,就是我的文件不太对,就校验了一下
这个地方是可以配置一些芯片的特殊的位
比如有人尝试读取内部信息就自动的把程序擦除上面的。需要看着数据手册操作,虽然说不是肯定保险,但是还是有用的
这篇文章其实知识密度不大,就是步骤繁琐。慢慢来吧,单片机的学习,环境的搭建也是重要的一环。