20楼#
发布于:2005-01-27 15:02
终于可以加载了,万分感谢wwei_wang大侠。
但是现在又有个新问题,就是我的16554的4个串口是用4个GPIO口做中断的,而这4个GPIO口的硬件中断号是一样的,所以我就把4个串口的系统中断号设成一样,结果初始化第一个串口时没问题,其它3个串口调用函数LoadIntChainHandler时会出错,因为同该硬件中断号已经与一个系统中断号对应了,后面再注册可能会失败。 然后进wince后对串口进行操作(不是16554第一个串口),结果在超级终端里狂打印: DEVICE:About to wait on CleanDoneEvent DEVICE:Got CleanDoneEvt 我查了一下,这个打印语句是在device.c里的RegisterDeviceEx函数里答应出来的。 现在我的4个串口只有一个硬件中断号,会不会有问题? |
|
21楼#
发布于:2005-01-27 16:00
终于可以加载了,万分感谢wwei_wang大侠。 (1)你想给我10000分,太客气了吧,1000就行了:))) (2)我觉得为了保证四个串口都能正常的工作,确保中断不丢失,应该采用不同的中断号吧。 |
|
|
22楼#
发布于:2005-01-27 17:19
(1)可惜我不够10000分,呵呵。
(2)你是说用不同的系统中断号吗?硬件中断号是固定的,没办法改了。 |
|
23楼#
发布于:2005-01-28 09:46
(1)可惜我不够10000分,呵呵。 (1)四个串口共用一个硬件中断,你在硬件上已经做死了是吗? (2)它们几个可以共用一个逻辑中断。 |
|
|
24楼#
发布于:2005-01-28 10:01
(1)硬件中断已经做死了,没办法改了。
(2)你说的逻辑中断是指系统中断SYSINTR吧,但是这样会出现我上面说的错误:一个硬件中断绑定一个逻辑中断4次,后面3次会报错。所以我考虑想用不同的SYSINTR号。 (3)顺便问一下,我的驱动里用的MDD是pb自带的,已经编译成.dll了,我想把MDD的源代码改了,那要如何让pb重新编译MDD的.dll呢?我直接把MDD的.dll文件删了,结果编译时会报错。 |
|
25楼#
发布于:2005-01-28 10:39
(2)只绑定一次就行了;
(3)在命令行先编译好。 |
|
|
26楼#
发布于:2005-01-28 11:14
要怎样编译呢?用什么命令?
|
|
27楼#
发布于:2005-01-28 11:55
在命令行用bulid 命令编译,pb里有关于build命令的使用方法。
|
|
|
28楼#
发布于:2005-01-28 16:25
NK.bin比NK.nb0要庞大许多,但是里面的东西好像都是一样的,我用UE打开看的。当然,dll也可以看见。不过比较费劲。不过个人觉得UE还是相当好用的。^_^看那堆BIB应该比较清楚。
|
|
29楼#
发布于:2005-01-29 09:10
其实,NK.bin和NK.nb0是一样的,只是NK.nb0是用于烧到flash里面的。
|
|
|
30楼#
发布于:2005-01-29 12:20
我编译出来的nk.nb0比nk.bin大很多,但是板子上恰恰是flash比ram要小的多,我烧写nk.bin到flash也行吧应该,因为nb0太大,超过flash容量了。bin还没有超过。不知道行不行。
|
|
31楼#
发布于:2005-01-29 13:35
nk.nb0怎样下载到FLASH呢?
我用一个download程序,先把eboot.nb0下载到FLASH里,再用pb通过网口下载nb.bin到FLASH,结果这个东西把网络、串口拔了就跑不了了。 |
|
32楼#
发布于:2005-01-29 21:22
是这样的,你要是用Eboot来跑的话就需要通过PB来Launch你的内核,当然需要连上网口和串口了。如果你想系统只是自动起来就运行内核,那样得利用Nboot来引导内核,你的Nboot需要改设置才行。这个引导起来的话应该是不用网口和串口的。
|
|
33楼#
发布于:2005-01-31 11:43
谢谢,我去试试.
|
|
34楼#
发布于:2005-01-31 12:03
你好厉害啊,连MDD都改了,是什么问题逼你改它的哦!一个硬件中断可以用于不同的几个逻辑中断,你的逻辑中断号当然不能一样了啊
|
|
35楼#
发布于:2005-01-31 16:52
我也没办法啊,也没改什么MDD,就是把调试信息都打印出来,因为我的驱动程序我想看看是在调用那一步时出问题的,这样才好改.但是改以后用不了,郁闷.
还有,我查了一下,在debug和release目录下没有Nboot.bin或Nboot.nb0文件啊,是不是编译时有什么选项啊? |
|
36楼#
发布于:2005-01-31 17:41
我用的是4.2评估版
|
|
37楼#
发布于:2005-02-02 11:19
兄弟:前面的中断问题解决了吗?怎么解决的?
我是这样理解的: 因为你四个串口共用一个硬件中断,如果只用一个逻辑中断的话,创建一个ist就够了,在ist实现对四个串口的处理;如果四个口采用不同的逻辑中断,你需要创建四个ist分别进行处理,不过我觉得在这种情况下有可能有数据丢失。 |
|
|
38楼#
发布于:2005-02-02 11:24
还没有解决,现在我想先把第一个串口调通再说.
呵呵,没办法,只能一步一步来了. 对了,wwei_wang兄,你知不知道我上面说的问题怎么解决? 就是把nk.bin下载进开发板,拔掉网口和串口线就起不来了 |
|
39楼#
发布于:2005-02-02 11:30
我现在调一个串口,我的驱动接收不到中断,很奇怪.
我在oalintr里定义了SYSINTR,在interrupt.c里的oeminterrupt相关函数注册了我的中断,但是就是收不到中断.不知道是怎么回事. |
|