首先从网上查阅的资料,都说比较困难。实着对我这样的业余2812人员一个大大的下马威啊。没有办法,饭只有一口一口的吃。摸索下来,发现也不是很困难的事情啊(也许在下是夜郎自大,没有遇到稀奇古怪的case)。
place-lower device只是实现了很简单的功能,
1,eCan, 采用了poll transmit AND interrupt receipt,
2,SCI -b,同样采用轮训发送,中断的接收;
3,ADC ,只采样了三路,做了很基本的Float到Hexadecimal 的转换
ADC采样数据发送到eCan interface,pc端只有一个eCan <<==>>USB的adapter《==》virual COM。没有软件,没有开发库(由于我们前期只是把功能实现了),连用多少Baud,数据位,停止位是什么都不知道,费劲吧;在这上面,确实花费我不少的功夫,读出USB的original 数据啊,查找其rule(都是凑出来的),然后解码成原始发送的数据,丢到VC的GUI中显示波形。
ok,言归正传,先修改cmd文件,我的cmd文件如下 MYF2812.cmd(CMD文件的格式,讲的地方很多,google一下吧)
MEMORY
{
PAGE 0: /* Program Memory */
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for da
ta allocation */
RAML0 : origin = 0x008000, length = 0x001000 /*L0 SRAM 4K */
OTP : origin = 0x3D7800, length = 0x000800 /* on-chip OTP */
FLASHJ : origin = 0x3D8000, length = 0x002000 /* on-chip FLASH */
FLASHI : origin = 0x3DA000, length = 0x002000 /* on-chip FLASH */
FLASHH : origin = 0x3DC000, length = 0x004000 /* on-chip FLASH */
FLASHG : origin = 0x3E0000, length = 0x004000 /* on-chip FLASH */
FLASHF : origin = 0x3E4000, length = 0x004000 /* on-chip FLASH */
FLASHE : origin = 0x3E8000, length = 0x004000 /* on-chip FLASH */
FLASHD : origin = 0x3EC000, length = 0x004000 /* on-chip FLASH */
FLASHC : origin = 0x3F0000, length = 0x004000 /* on-chip FLASH */
FLASHA : origin = 0x3F6000, length = 0x001F80 /* on-chip FLASH */
CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
ROM : origin = 0x3FF000, length = 0x000FC0 /* 引导区的ROM available if MP/MCn=0 */
RESET : origin = 0x3FFFC0, length = 0x000002 /* 复位地址BROM矢量 ROM (MP/MCn=0) or XINTF zone 7 (MP/MCn=1) */
VECTORS : origin = 0x3FFFC2, length = 0x00003E /*BROM矢量 ROM (MP/MCn=0) or XINTF zone 7 (MP/MCn=1) */
PAGE 1 : /* Da
place-lower device只是实现了很简单的功能,
1,eCan, 采用了poll transmit AND interrupt receipt,
2,SCI -b,同样采用轮训发送,中断的接收;
3,ADC ,只采样了三路,做了很基本的Float到Hexadecimal 的转换
ADC采样数据发送到eCan interface,pc端只有一个eCan <<==>>USB的adapter《==》virual COM。没有软件,没有开发库(由于我们前期只是把功能实现了),连用多少Baud,数据位,停止位是什么都不知道,费劲吧;在这上面,确实花费我不少的功夫,读出USB的original 数据啊,查找其rule(都是凑出来的),然后解码成原始发送的数据,丢到VC的GUI中显示波形。
ok,言归正传,先修改cmd文件,我的cmd文件如下 MYF2812.cmd(CMD文件的格式,讲的地方很多,google一下吧)
MEMORY
{
PAGE 0: /* Program Memory */
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for da
RAML0 : origin = 0x008000, length = 0x001000 /*L0 SRAM 4K */
OTP : origin = 0x3D7800, length = 0x000800 /* on-chip OTP */
FLASHJ : origin = 0x3D8000, length = 0x002000 /* on-chip FLASH */
FLASHI : origin = 0x3DA000, length = 0x002000 /* on-chip FLASH */
FLASHH : origin = 0x3DC000, length = 0x004000 /* on-chip FLASH */
FLASHG : origin = 0x3E0000, length = 0x004000 /* on-chip FLASH */
FLASHF : origin = 0x3E4000, length = 0x004000 /* on-chip FLASH */
FLASHE : origin = 0x3E8000, length = 0x004000 /* on-chip FLASH */
FLASHD : origin = 0x3EC000, length = 0x004000 /* on-chip FLASH */
FLASHC : origin = 0x3F0000, length = 0x004000 /* on-chip FLASH */
FLASHA : origin = 0x3F6000, length = 0x001F80 /* on-chip FLASH */
CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
ROM : origin = 0x3FF000, length = 0x000FC0 /* 引导区的ROM available if MP/MCn=0 */
RESET : origin = 0x3FFFC0, length = 0x000002 /* 复位地址BROM矢量 ROM (MP/MCn=0) or XINTF zone 7 (MP/MCn=1) */
VECTORS : origin = 0x3FFFC2, length = 0x00003E /*BROM矢量 ROM (MP/MCn=0) or XINTF zone 7 (MP/MCn=1) */
PAGE 1 : /* Da