-
刚看了一下430升级的相关代码,还没有全部看完。大概的做法就是先烧一个升级程序到单片机里去,这个升级程序包含了能正常启动仪器所需的最小的一些初始化工作。也就是说这个升级程序是可以独立运行的。在这个升级程序里做了一些判断,比如某个组合键按下,则执行升级操作,如果没有则用asm(“br 0xffe0;”)跳转到用户程序(也就是正常运行的主程序)。那也就是说用户程序要放到flash的0xffe0这个位置。但是现在又有了疑问,就是中断向量。中断向量应该也算是代码的一部分,我查了一下手册stm8s207rbt6的中断向量是放在0x8000后面的128个字节中。如果主程序改变了,导致中断服务程序的入口地址发生的改变,那么中断向量是不是要更新,如果我只将0xffe0后面的代码更新会不会出现问题。还有就是升级程序是一个独立的工程,正式程序也是一个独立的工程,两个都有main函数。那么我在正式程序的main函数之前用伪指令定义一下这个main函数的起始地址,也就是0xffe0。这样在烧完升级程序以后,再烧正式程序是不是才不会出现覆盖。不要不这样做,用IAR编译器用什么指令,#pragma section(0xffe0)啊。指点一下
-
FLASH: 6K
RAM: ZERO RAM 97
应该没有超过大小啊!
编译时,都通过了。。。。
9.JPG
(40.44 KB)
下载次数:3
2010-8-12 10:31
-
仔细看了一下,每个产品资料列表,
好像stlink是有一些产品,暂时不支持。
-
引用 9 楼 peasant_lee 的回复:
既然数据发送那部分已经确定,那么波特率估计已经也定死了。所以考虑波特率的设置也没用的。串口接收/发送定时器是不是用来设置波特率,要具体看芯片手册,有些是用定时器来做波特率发生器的,比如常用的51单片机,,你所说的一包数据有多大?相比你的fifo大多少?你现在的波特率是多少,算算理论值,看看能不能处理的过来。
发送也是我自己通过一个软件发送的,波特率也是可调的,只是具体的协议定死了,也就是每包数据的大小及内容已经确定,不能更改了。
我的FIFO是8word的,一包数据最多的时候可能会到达1000字节以上
现在的波特率是115200,DSP用的是TMS320VC33,计数器每条指令时钟周期为33.3ns,应该是能处理过来的
-
已经知道 SRAM中肯定是可以运行代码的了,我试过使用MDK在外部SRAM运行调试
STM32 外扩SRAM地址0x68000000(FSMC)
但是我 将代码(某函数)Copy到 此处0x68000000
然后用函数指针绝对跳转到此处
发生异常
求解
-
之前搞TI的DSP时,DSP的引脚复用功能是通过相应的寄存器设置的,即,如果一个引脚可以作为多个功能时,相应的GPIO寄存器可以设置引脚的当前功能,这样就不会造成冲突,不知道ST有没有这方面的措施,还是要人为的注意,不过ST的重映射还是比较灵活的。
-
看开发板的电路图,DM9000芯片的复位引脚也是接到MAX8111的复位输出引脚上的,应该不去要IO口去做特别的复位操作吧,但是如果在看门狗复位系统时也能让DM9000复位收到复位信号?这个应该是由2440的nRSTOUT引脚来做的吧?
但是为啥基于wince4.2的BSP同样使用在同一款开发板上,就可以在看门狗复位时也能复位DM9000网卡呢?
-
延迟100ms是winCE线程时间片的大小。
4ms的发送时间,数据量有多大?这么慢。
可以更改一下线程时间片,不过这点我感觉不怎么好。
你的串口程序线程之间关系可能不太合理,所以那么耗时间。
建议修改程序。
-
我以前使用过,好久了,好像注册表里还要写,应该跟6楼的写法差不多
LPCTSTR path =_T("\\****\\****");
HANDLE Handle = ActivateDeviceEx(path, NULL, 0, NULL);
-
机器人行业 还是非常有市场。
楼主看看小日本的机器人的发展,以及欧美的,就能想象未来的机器人是多么有需求的。
我还是比较喜欢这个行业。
楼主能否透露下你所在的城市?
-
帮顶下。
MARK,学习下、
-
花了3个小时,问题解决了!一点点的东西,稍稍动下就ok,真是害死人!
-
这个问题的原因是因为WS_CLIPCHILDREN属性导致的,在WinXP下,去掉这个属性就能达到楼主说的要求,可以WinCE下去掉这个属性还是这样,微软内部写死了的,这个问题不知道害了多少人
-
没那么简单的
-
引用 2 楼 gooogleman 的回复:
友善的bootloader不开源,这点很不好。
价格倒还是可以。
我觉得一个开发板是否好,关键是下面三个因素
bootloader 是否开源,烧写是否合理,是否容易更新等
BSP 质量
还有就是写的文档是否详细,
我现在对这个是一片空白,所以买个开发板来学习下
-
引用 24 楼 gooogleman 的回复:
我现在和楼主情况不同,
我是发送超过1024byte没有问题,
但是发送10几次之后这个 外部串口驱动芯片就不产生中断了,现在还是找不到原因。
嘿嘿,刚才经过一番修改,把isr的中断重新使能部分直接搬到接收之后,居然没有出现问题了!
不过是在wince6.0 之下,现在换wince5.0 试试。
-
windowsCE 工程实践完全解析
非常不错
-
这个状态是USBFN驱动维护的,应用层可以用Activesync的API来获取。驱动层可以直接从usbfn驱动里获取(猜测)。
-
引用 2 楼 larryk 的回复:
在项目的属性--->configuration properties(配置属性)--->general里,可以改成使用静态库,改后有错误提示,说machine type 'THUMB'与machine type 'ARM' 冲突,文件是winsock.lib。
我又在属性--linker---command Line里将原来的THUMB改成ARM,结果出现292个错误。
这个应该怎么办?
照上面第一种修改方法,只剩下一个错误,就是不知道改什么地方。
-
直接用一片MAX038,你要的都有了
MAX038的性能特点:
1)能精密地产生三角波、锯齿波、矩形波(含方波)、正弦波信号。
2)频率范围从0.1Hz~20MHz,最高可达40MHz,各种波形的输出幅度均为2V(P-P)。
3)占空比调节范围宽,占空比和频率均可单
独调节,二者互不影响,占空比最大调节范围是
10%~90%。
4)波形失真小,正弦波失真度小于0.75%,占空比调节时非线性度低于2%。
5)采用±5V双电源供电,允许有5%变化范围,电源电流为80mA,典型功耗400mW,工作温度范围为0~70℃。
6)内设2.5V电压基准,可利用该电压设定FADJ、DADJ的电压值,实现频率微调和占空比调节。