本帖最后由 Simon21ic 于 2010-4-30 19:23 编辑
首先有几点说明:
1. Versaloon其实2年前就已经有了。最早开发Versaloon只是因为当时别人送的ST-Link无法在Linux下使用。所以,早期的Versaloon很简单,只是提供了一个USB==>JTAG的链路,然后在OpenOCD里写了一个Versaloon的驱动。并且,ST意大利部门也有工程师也亲自测试并使用Versaloon。当然,还有一些事情无法公开(比如,与st.com邮箱通信的任何内容都不可公开)。之后,慢慢增加了多种MCU的支持,使得USB_TO_XXX协议更加完善。
在增加各种MCU的支持的过程中,也发现了一些问题,比如,各种MCU的下载接口对硬件的需求都不同,使得接口固定的Mini版本无法适应有些MCU,而使得需要修改硬件。前段时间为了增加STM8_SWIM的支持,就修改过硬件。不过,最近受fuxiangbo大侠启发,准备使用配置板的方式来解决这个问题,同时,也使得我有动力去实现VersaloonPro版本。当然,fuxiangbo为这个方式申请专利后,所有涉及到的版权费,就需要所有参与和使用Versaloon的人共同承担了。相关的问题,我会和他沟通后,发布在这里。
2. DIY不应该只是焊接焊接硬件,下载别人做好的hex代码那么简单。我看过不少代码,很多代码都是别人产品里使用的,有些东西的用量是用million作为单位的。当然,也包括不少开源项目的代码。好的代码或者构架,可以让整个系统维护起来非常简单,而不好的代码构架,会让维护变成灾难。Versaloon里,使用了不少技巧,使得代码还算是比较容易维护。这里用我的VSGUI作为例子吧,VSGUI中,每种芯片都会有一个页面,而这些页面已经里面的内容,基本都是自动生成的,对很多东西的修改,不需要涉及到源代码。VSGUI中的熔丝位配置界面,在开发环境中是空的,因为所有东西都自动生成,所以,对于AVR/STM8/STM32,都是用同一个界面来配置熔丝位。所有芯片相关的数据(包括熔丝位数据),都是放在对应的xml配置文件中。
VersaloonPro版本的DIY,会邀请一些网友做部分的开发,通过这些开发,我相信是可以学到不少东西的。当然,开发的过程、成果、以及感想,都会公开发布。
3. 关于版权以及许可问题,Versaloon的所有资料都是基于GPLv3发布的,并且,作为所有者,我可以更改许可协议。目前,在GPLv3协议上,增加了一个限制,就是没有许可的话,不得擅自用于商业项目。
任何提供核心功能改进的人,都可以在在改动的文件的文件头里,按照固定的格式,增加他自己的版权信息。当然,这里需要对核心部分的修改,如果只是修改printf输出的信息格式的话,是不允许增加版权信息的。OpenOCD里,AVR和SVF的支持是我做的,所以,相关的文件的版权信息是我加上的,但是,也有人只是修改一些外围功能,而把自己的版权信息加上,结果OpenOCD的维护人员并没有生效他的版权信息。
4. 可能的失败原因。
很多原因会导致失败,或者期限无限制延长。比如,没有人感兴趣,那当然就只能无限期延长了。 |