TKStudio 介绍,非常强大的一款集成开发环境,仅仅当个文本编辑、代码查看也是非常不错的。

时间:2024-02-18 11:55:07
1. TKStudio概述

TKStudio集成开发环境是广州致远电子股份有限公司开发的一个嵌入式芯片级、系统级软件开发平台,是一款内置强大编辑器的多内核编译调试环境,支持Keil C51、SDCC、GCC ARM、ADS、IAR ARM、MDK、RVDS、GCC AVR、WindRiver CCORE、CCoreGcc、RemoteGcc等编译工具链,支持8051、ARM7/ARM9/ARM11、CortexM3/CortexM0、XScale、AVR、CCORE等内核调试,支持Linux bootloader、Linux内核、Linux内核模块、Linux应用程序等的调试。可以完成从工程建立和管理,编译,链接,目标代码的生成,到软件仿真,硬件仿真(挂接TKS系列仿真器的硬件)等完整的开发流程。

常见的集成开发环境如Keil、IAR等其代码编辑功能都比较一般,而TKStudio最直观的优点就是其强大的代码编辑功能,其代码编辑器整合了SciTe、Emacs、VC6.0、SourceInsight、VS2008等常用编辑器的优点,还可以在几种风格之间*切换,在代码编写过程中非常方便,即是不用他来进行开发和调试,单纯用来进行代码编辑也是非常方便的。对于本书所主要介绍的STM32的开发来说,更为重要的是TKStudio可以直接导入Keil MDK、IAR等其他开发工具的工程文件,实现无缝过渡,尤其是和Keil MDK,无论是在用户界面还是在一些选项细节的设置上都非常相像,非常方便使用。

下面借着TKStudio的例子,介绍一下一个优秀的代码编辑器可以有哪些方便使用的功能。TKStudio的代码编辑器有以下突出的功能,如所示。

智能感知

代码参照

快速格式化

智能缩进

区间显示

函数导航

转到实现

代码折叠与提示

.h/.c文件交叉参考

*缩放代码

完美支持中文

快速打开包含文件

快速选择

语法高亮显示

差异行显示

一档多视

快速注释

即时显示配对括号

十六进制编辑

查找、替换、书签

2. 强大的代码编辑器

下面针对几项代码编辑器突出的功能进行简要的介绍。

(1)自动补全

智能感知,也就是代码辅助,是指根据当前已经输入的字符,自动提示所有可用的补全推荐列表,供参考或直接进行选择,可以有效避免拼写错误,提升编码速度和准确度。推荐列表会显示顺序以前缀完全匹配为优先,前缀忽略大小写匹配次之,然后再是非前缀匹配。

如所示,当输入g时,编辑器就会自动根据已经输入的字符进行匹配,匹配的内容包括软件自带关键词库,同时当前工程中的文件同样也会作为匹配库进行匹配,这一点对于使用第三方的标准外设库开发非常方便,可以极大的提升输入效率,而且可以很大程度避免函数输入错误的情况。

clip_image002

(2)成员提示

智能感知除了普通的字符串补全外,还包括成员提示、参数提示和代码模板等非常实用的功能。

成员提示是指具有复杂结构的变量,当用户意图引用它的成员时,系统自动列出它所有的成员供选择。

clip_image004

(3)代码参数提示

例如当我们调用一个已经定义好的函数时,传统情况下需要再次去查看对应函数的参数类型等,在代码编辑器中来回切换较为麻烦,代码参数提示功能就是针对这个问题而设计,如所示,当输入一个函数后,输入前半个括号时,编辑器会自动补全后半个括号,同时在下方自动提示函数的相关参数。

clip_image006

(4)代码模板

代码模板功能则是指当在编辑器中输入库中预设的代码模板,如if、while等,编辑器能够自动输入相应的模板,如所示,当输入if时,编辑器会自动给出提示,按回车键后,编辑器会自动补全后面的括号和下方的大括号。

clip_image008

(5)区间显示

区间显示是指TKStudio会在源代码窗口左上方的导航条里显示当前光标位置所在的区间,这样在多重嵌套的代码时可以很清晰地知道当前位置。通过向上箭头还可以将光标位置移到上一级区间,即所在区间的{前面,向下箭头则将光标位置所在区间的}前面。区间主要是以{}进行区分。

clip_image010

(6)快速格式化

快速格式化是指以快速的方式调整代码的缩进量,使代码格式合理美观,便于阅读。快速格式化可以高效地调整乱码,这使得复制粘贴代码非常方便,免除了手工调整的麻烦,此功能在嵌入式开发环境中非常少见。

clip_image012

(7)智能缩进

智能缩进是指编辑器会实时根据输入的内容判断缩进量,并自动完成缩进的工作,使代码格式合理美观,便于阅读。免除了手动进行缩进的麻烦。根据个人的习惯,开发者还可以方便地进行个性化调整。

(8)代码参照

代码参照是指不用关闭当前窗口,就可以清楚地知道代码出现过的位置,以及清晰方便地查看其声明或实现。代码参照方便了代码的阅读,避免为了查看某段代码而*关闭当前阅读的代码,避免了窗口之间的切换。如所示,当鼠标点击GPIO_Init函数时,下方的代码定义窗口会自动定位到代码的定义位置,非常方便代码的阅读。

clip_image014

3. 丰富的编译工具链

TKStudio具备了丰富的编译器选项配置信息,对各种工具链的编译、链接、调试提供了灵活的配置参数,对MCS-51、ARM、AVR、CCORE等内核芯片都提供了支持,灵活多样的工具链,这是优于国内其它厂商IDE的关键之一。完整版的安装包中包含了SDCC、RemoteGcc、GCC AVR、GCC ARM等免费开源工具链,还可以自行调用Keil C51、ADS、IAR ARM、MDK、RVDS等编译工具链。

更为方便的是TKstudio直接支持Keil C51、ADS、IAR ARM、MDK、RVDS工程的直接导入,非常方便项目开发环境的转换与迁移。

clip_image016

4. 强大的源代码级调试器

Keil具有非常强大的调试器,进行相关的仿真非常强大、方便,TKStudio调试器与Keil无论是在界面上还是在使用细节上都有很多相似之处,更为强大的是,它支持8051、ARM、AVR、CCORE等多平台主流芯片的系统级调试,支持断点、单步、全速等多种调试方式,配备大量窗口以观察调试信息,并且内置了完备的软件仿真系统。如所示。

clip_image018

5. 丰富的外部工具

TKStudio自带了非常丰富的外部工具,如串口调试助手、K-Flash下载器、文件比较器等,下面介绍几个比较好用的外部工具。

(1)K-Flash在线烧写器

K-Flash 是一款用于 Flash 烧写,支持 TKScope 系列仿真器,具有文件烧写与校验、数据擦除、数据查空和数据读取等功能的软件。 K-Flash具有以下特点:

l 工程化配置,操作简单、方便、快捷;

l 支持TKScope全系列通用仿真器;

l 支持ARM、C8051F、AVR、DSP等多种内核;

l 支持一次烧写多个文件,操作更快捷;

l 支持bin文件、hex文件、elf文件等多种类型的文件;

l 支持片内Flash和片外Flash烧写;

l 具备烧写校验功能,验证烧写是否正确;

l 具备抽取文件部分数据进行烧写的功能,可指定地址范围进行烧写;

l 多种Flash烧写操作,可以进行擦除和读取等操作;

l 具有独立的数据擦除功能,可指定扇区进行擦除,操作更简捷;

l 具有数据查空功能,可指定扇区检查芯片是否有数据;

l 具有独立的数据读取功能,可指定地址范围进行读取,支持一步到位打开读取的数据;

l 保存配置到工程文件中,免除繁琐重复的配置操作;

l 支持各大半导体公司的芯片烧写,内置多种芯片的默认配置;

l ARM内核烧写算法文件公开,用户可自行添加 Flash 算法。

clip_image020

(2)文件比较器

文件比较器TKSDiff用于文本文件比较、目录比较、二进制文件快速比较、二进制文件智能比较,以图形界面显示比较结果(包括冲突的分布和比例),支持冲突的替换和合并,支持选中文本的导出和以多种格式进行复制。文件比较器在查看文件差异时非常直观高效,能有效地避免人工查找的繁琐和疏漏。

clip_image022

(3)图片/字模助手

图片/字模助手用于把一些常用格式的图片转换成嵌入式系统需要的数据格式,也可以方便提取多种字符集的多种字体的字模,方便您将输出数据用于编写程序或烧写到Flash芯片中。具备以下功能:

l 支持常用图片格式:*.gif; *.jpg; *.bmp; *.png; *.jpeg; *.exif; *.tiff; *.ico; *.wmf; *.emf;

l 可以设置屏幕大小,并根据需要对图片进行缩放或拉伸;

l 支持多种扫描方式;

l 输出多种颜色级别;

l 可保存为C 语言数组,二进制BIN 文件,BMP 文件和字符图文件(只用于单色位图)等四种格式;

l 对于真彩色可以调整 RGB三种颜色的输出顺序;

l 支持大端、小端两种输出方式;

l 可对图像进行旋转、镜像、反色等处理,并可立刻看到处理效果;

l 支持ANSI, GB2312, CHINESE BIG5三种字符集的各种字模的提取;

l 支持多种取模方式;

l 支持一次性提取多个字模;

l 支持字模的编辑和保存。

clip_image024

clip_image026

(4)其他工具

TKStudio另外还集成了众多非常实用的小工具,如波特率计算工具、Ext2文件查看工具、串口调试助手以及模拟器等,有兴趣的可以进一步的了解这些小工具的特点,充分利用方便开发。