我从2008年底就开始用Puppy圣诞版,一直到现在。下面的网址是我用Linux的图片:
http://www.minilinux.net/softwar ... %E6%AF%94nop?page=1 贴子号是#10765
去年买了一块普中HC6800的板子,因为提供光盘中的开发环境是Windows下的,而且看坛子上的例子也都是MDK的,所以就试着在LInux下用wine仿真执行,完全没问题,但我没钱买Jlink,另外,我习惯使用Gvim来进行软件编程,所以集成的开发环境对我来说就是鸡肋。在Window下提供了一个下载软件,但Wine后不能正常下载。Google后找到了下面的软件,是开源的,但不支持一键下载,也就是不能控制DTR、RTS。改编了一下源程序,增加了控制DTR、RTS的代码,增加了取消STM32读保护的功能。
软件在命令行运行时必须设置一些注册表项目,将下面的文字存成aa.rge
REGEDIT4
[HKEY_LOCAL_MACHINE]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment]
"CPU_CLOCK"="0x00000000"
"CPU_TYPE"="STM32F103C8"
"CPU_VENDOR"="STMicroelectronics"
"PATH"="z:\\Keil\\ARM\\BIN40\\;C:\\windows\\system32;C:\\windows"
"RVCT40INC"="z:\\Keil\\ARM\\RV31\\INC"
"RVCT40LIB"="z:\\Keil\\ARM\\RV31\\LIB"
"UV2_TARGET"="HC6800-EM3"
[HKEY_LOCAL_MACHINE\Software\Classes\KA0.74H0Y.C]
[HKEY_LOCAL_MACHINE\Software\Classes\KA0.74H0Y.C\CXSID]
@=hex:96,e4,3e,98,e8,22,66,a7,fc,39,9f,d9,16,53,b4,13,63,9d,ee,55,92,cf,15,4f,\
95,d2,0f,4c,89,c3,05,55,92,ed,50,5d,6a,77,84,91,9e,ab,b8,c5,d2,df,ec,f9,06,\
13,20,2d,3a,47,54,61,6e,7b,88,95,a2,af,bc,c9,78,df,ec,f9,06,13,20,2d,3a,47,\
54,61,6e,7b,88,95,a2,af,bc,c9,31,12,45,a2,eb,56,f6,f7,00,00,00,00,00,00,00,\
00
[HKEY_LOCAL_MACHINE\Software\Classes\{4E50B08E-28CB-44DA-B5B4-EFC45C1EBE6B}]
"0A74H0YC"=hex:c6,14,6e,c8,18,52,96,d7,2c,69,cf,09,46,83,e4,43,93,cd,1e,85,c2,\
ff,45,7f,c5,02,3f,7c,b9,f3,35,85,c2,1d,80,8d,9a,a7,b4,c1,ce,db,e8,f5,02,0f,\
1c,29,36,43,50,5d,6a,77,84,91,9e,ab,b8,c5,d2,df,ec,f9,a8,0f,1c,29,36,43,50,\
5d,6a,77,84,91,9e,ab,b8,c5,d2,df,ec,f9,31,12,45,a2,eb,56,f6,f7,00,00,00,00,\
00,00,00,00
[HKEY_LOCAL_MACHINE\Software\Classes\KA0.8VU3G.C]
[HKEY_LOCAL_MACHINE\Software\Classes\KA0.8VU3G.C\CXSID]
@=hex:c4,12,69,c3,13,4d,92,f5,57,97,eb,25,80,bd,18,56,a6,e0,3d,82,bf,fc,3e,78,\
bc,f9,36,73,b0,ea,27,8b,c8,0a,4d,5a,67,74,81,8e,9b,a8,b5,c2,cf,dc,e9,f6,03,\
10,1d,2a,37,44,51,5e,6b,78,85,92,9f,ac,b9,c6,75,dc,e9,f6,03,10,1d,2a,37,44,\
51,5e,6b,78,85,92,9f,ac,b9,c6,31,12,45,a2,19,66,9d,5e,00,00,00,00,00,00,00,\
00
[HKEY_LOCAL_MACHINE\Software\Classes\{4E50B08E-28CB-44DA-B5B4-EFC45C1EBE6B}]
"0A8VU3GC"=hex:f4,42,99,f3,43,7d,c2,25,87,c7,1b,55,b0,ed,48,86,d6,10,6d,b2,ef,\
2c,6e,a8,ec,29,66,a3,e0,1a,57,bb,f8,3a,7d,8a,97,a4,b1,be,cb,d8,e5,f2,ff,0c,\
19,26,33,40,4d,5a,67,74,81,8e,9b,a8,b5,c2,cf,dc,e9,f6,a5,0c,19,26,33,40,4d,\
5a,67,74,81,8e,9b,a8,b5,c2,cf,dc,e9,f6,31,12,45,a2,19,66,9d,5e,00,00,00,00,\
00,00,00,00
把MDK编译时的选项生成bat文件勾上,可生成如下的批处理文件
SET RVCT40INC=z:\Keil\ARM\RV31\INC
SET RVCT40LIB=z:\Keil\ARM\RV31\LIB
SET CPU_TYPE=STM32F103C8
SET CPU_VENDOR=STMicroelectronics
SET UV2_TARGET=HC6800-EM3
SET CPU_CLOCK=0x00000000
"z:\Keil\ARM\BIN40\ArmCC" --Via ".\obj\gdlcd.__i"
"z:\Keil\ARM\BIN40\ArmCC" --Via ".\obj\stm32f10x_it.__i"
"z:\Keil\ARM\BIN40\ArmCC" --Via ".\obj\i2c.__i"
"z:\Keil\ARM\BIN40\ArmCC" --Via ".\obj\2402.__i"
"z:\Keil\ARM\BIN40\ArmCC" --Via ".\obj\errarray.__i"
"z:\Keil\ARM\BIN40\ArmAsm" --Via ".\obj\stm32f10x._ia"
"z:\Keil\ARM\BIN40\ArmLink" --Via ".\obj\STM-1602.lnp"
z:\Keil\ARM\BIN40\fromelf.exe ".\obj\STM-1602.axf" --i32combined --output ".\obj\STM-1602.hex"
把相关的有用文件移到make文件夹下,把它改造成下面的sh文件:
#! /bin/sh
echo "start"
wine regedit ".\make\aa.reg"
wine "z:\Keil\ARM\BIN40\ArmCC" --Via ".\make\gdlcd.__i"
wine "z:\Keil\ARM\BIN40\ArmCC" --Via ".\make\stm32f10x_it.__i"
wine "z:\Keil\ARM\BIN40\ArmCC" --Via ".\make\i2c.__i"
wine "z:\Keil\ARM\BIN40\ArmCC" --Via ".\make\2402.__i"
wine "z:\Keil\ARM\BIN40\ArmCC" --Via ".\make\errarray.__i"
wine "z:\Keil\ARM\BIN40\ArmAsm" --Via ".\make\stm32f10x._ia"
wine "z:\Keil\ARM\BIN40\ArmLink" --Via ".\make\STM-1602.lnp"
wine "z:\Keil\ARM\BIN40\fromelf.exe" ".\obj\STM-1602.axf" --i32combined --output ".\obj\STM-1602.hex"
read -n1 var
以后需要编译时在Gvim下直接执行这个文件就行了。因为STM32工程文件是商业开发的,所以删除了一些源文件,附件中是编译时所有的源文件(包括下载,编译的角本,下载的源代码,ISP开发的pdf资料) |