-
没想到发个牢骚引来许多的同情,深表感谢!或许是习惯到官网找资料了,其实换个思路在别的地方也能找得到!因为刚刚开始想看看找点这类的资料,也没有具体的目标,也一并感谢版主主!!
-
DMA只能设置接收固定字节吧?有两种长度的不太好做?
不过象GPS这种慢速外设,直接在中断里面做不就好了?
收一个存一个,收到回车(记得回车是一行数据的结尾标志),把这一行解析了(也不耗什么时间)。
然后从数 ...
赞同,直接在中断里面做比较合适。
-
哇哇哇,多说一句:
在主从之间串个小电阻,就可以在总线被拉低时知道,是谁拉的了。
-
请教关于WinCE模拟器映射PC串口的问题,我映射以后也碰到程序打开失败,请问是什么原因?谢谢
-
谷歌男,能帮我推荐本wince5的书么?基于arm的,页数越多越好
-
软键盘有大键盘和小键盘之分,大侠要么换个软键盘试试!
-
额…流量计以脉冲形式输出?他是液体怎么产生脉冲啊?
-
网上资源很多,楼主确定个目标,朝着方向努力就是了。现在说实在的,现在搞技术门槛要比以前低多了。
不管你是做什么工作,只要肯努力,现在又有这么多现成的资源,都可以在技术方面做的很好
-
这个内核异常很难搞。真的难搞。呵呵。
需要时间了。
-
这个不困难吧,cximage直接调用即可
-
楼主确定晶振没坏?
-
天啊。呵呵。我当时还是5.0 的变化太快了。
-
就是try catch的问题。
删掉就可以了。
系统是定制的,可能和这个有关系。
谢谢大家
-
向大家学习............
-
void IWDG_Init(void)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
/* IWDG counter clock: 40KHz(LSI) / 32 = 1.25 KHz */
IWDG_SetPrescaler(IWDG_Prescaler_32);
/* Set counter reload value to 349 */
//该参数允许取值范围为0 – 0x0FFF
IWDG_SetReload(3750); //3s
/* Reload IWDG counter */
IWDG_ReloadCounter();
/* Enable IWDG (the LSI oscillator will be enabled by hardware) */
IWDG_Enable();
}
-
引用楼主 tntman 的回复:
我的环境:at91rm9200+28F128+dataflash
我运行仿真器时,程序执行起点是__ENTRY,地址是0x20000000,(1)请问这个地址是可变的吗?
1ffffff4 [0xffffffff]? dci? ? ? 0xffffffff ; ? undefined
1ffffff8 [0xffffffff]? dci? ? ? 0xffffffff ; ? undefined
1ffffffc [0xffffffff]? dci? ? ? 0xffffffff ; ? undefined
__ENTRY ? ? ? ? [0xea000009]? b? ? ? ? InitReset
undefvec [0xeafffffe]? b? ? ? ? undefvec
swivec ? ? ? ? [0xe59ff010]? ldr? ? ? pc,SWI_Addr ; = #SWI_Addr
pabtvec ? ? ? ? [0xe59ff010]? ldr? ? ? pc,PrefetchAddr ; = #PrefetchAddr
dabtvec ? ? ? ? [0xe59ff010]? ldr? ? ? pc,DataAbortAddr ; = #DataAbortAddr
rsvdvec ? ? ? ? [0xeafffffe]? b? ? ? ? rsvdvec
irqvec ? ? ? ? [0xe51fff20]? ldr? ? ? pc,0x1ffff100 ; = #0xfffcecec
fiqvec ? ? ? ? [0xeafffffe]? b? ? ? ? fiqvec
SWI_Addr [0x2000752c]? dcd? ? ? 0x2000752c? ,u.
PrefetchAddr [0x200000e8]? dcd? ? ? 0x200000e8? ...
DataAbortAddr [0x200000ec]? dcd? ? ? 0x200000ec? ...
InitReset [0xe59f10dc]? ldr? ? ? r1,0x20000110 ; = #0x200081e0
20000030 [0xe3c11003]? bic? ? ? r1,r1,#3
我执行到软中断后程序死在0x00000008:
00000000 [0xea000007]? b? ? ? ? 0x24
00000004 [0xeafffffe]? b? ? ? ? 0x4
00000008 [0xeafffffe]? b? ? ? ? 0x8
0000000c [0xeafffffe]? b? ? ? ? 0xc
00000010 [0xeafffffe]? b? ? ? ? 0x10
00000014 [0xeafffffe]? b? ? ? ? 0x14
00000018 [0xe51fff20]? ldr? ? ? pc,0xfffff100 ; = #0x00105260
0000001c [0xeafffffe]? b? ? ? ? 0x1c
00000020 [0x00105448]? andeqs? r5,r0,r8,asr #8
00000024 [0xe59f1130]? ldr? ? ? r1,0x0000015c ; = #0xfffffc00
00000028 [0xe3e00000]? mvn? ? ? r0,#0
0000002c [0xe5810064]? str? ? ? r0,[r1,#0x64]
00000030 [0xe3e00001]? mvn? ? ? r0,#1
00000034 [0xe5810004]? str? ? ? r0,[r1,#4]
请问为什么呢?
你在0x08处的指令是又跳转到0x08,所以死循环了!
-
谢谢大家! 第一次提问就有这多人帮忙!
总结了一下,好像有这么几种方法,我明天去试试。
1. 如果是full kernel模式的话,直接应用程序中像单片机一样操作0x8084_00xx就可以了
如果是非full kernel mode的话,通过virtualalloc/virtualcopy后直接操作0x8084_00xx也可以
2. 如果你的io灯不带锁存功能的话,就要你循环的点灯了,类似于数码馆的操作
3. 写个GPIO的流驱动,用EVC或C#调用即可
4. 弄一个驱动,在IOcontrol函数里面,对各个LED灯进行控制...生成一个DLL后,加入到NK中,再再一个小应用程序,来调用DLL的流接口
-
-
虚拟内存和物理内存的概念看一下就明白了
-
Q12是偏置电路,目的是改善动态范围. Q13才是放大的管子. R28/C5是使Q12吸收直流分量,脉动的分量送给Q13....