This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
1、HIC模块GCR寄存器配置非0xA值时,外部主机无法访问HIC模块可写寄存器?
2、数据接口配置为8位时,外部连续偶地址写HIC寄存器,写入数据与手册相关介绍不一致。
HIC模块GCR寄存器配置非0xA值时,外部主机无法访问HIC模块可写寄存器?
是的,此字段可以阻止外部主机向邮箱寄存器和device region写入数据。
2、数据接口配置为8位时,外部连续偶地址写HIC寄存器,写入数据与手册相关介绍不一致。
请问您指的写入数据和手册介绍不一致具体是什么含义?能否提供一个例子?
1、第1个问题,按您说的,那就与手册介绍不一致呀,手册是说非0xA值,还可以写HIC中外部主机可写的寄存器。
2、第2个问题,例如:地址0x40写数据,接着0x44写数据,此时第一个数还未完成打包,第二个数的地址却超过了第一个数打包地址的边界,就触发了错误,手册上是说丢弃第一个写的数,实际测试是保留下来了。
1、第1个问题,按您说的,那就与手册介绍不一致呀,手册是说非0xA值,还可以写HIC中外部主机可写的寄存器。
您好,感谢您的指正,手册在这里写得不是很清楚,我们将在下次版本更新时修订这一点。简言之,如果 GCR 具有非 0xA 值,主机将不能访问寄存器或器件区域。
2、第2个问题,例如:地址0x40写数据,接着0x44写数据,此时第一个数还未完成打包,第二个数的地址却超过了第一个数打包地址的边界,就触发了错误,手册上是说丢弃第一个写的数,实际测试是保留下来了。
您是指,当您尝试在packing边界之外的非连续地址时,您看到第一次写入仍然有效,而不是被丢弃?
您好!请问与0025c例程对通的emif程序能提供下吗?
The example demonstrates the following sequences
//! 1. Sending a message to the Host using Device to Host buffer,Passing a token
//! which triggers an interrupt at the Host.
//! 2. Waits for the Host to clear the interrupt.
//! 3. Then waits for a message from Host which contains the code 0x1 in
//! buffer index 0 and index 1 contains the Base address to be configured
//! 4. Configures the base address for Page 0
//! 5. Sends a message to Host after that is configured
//! 6. After this step the external host can use the address 0-0xFF
//! to access the Base address region in System memory
这是指邮箱模式下的例程吗?那0-FF能访问0025c的外设空间?
您好,
是的
关于这个问题工程师需要确认下是否正常,有确定的答案会尽快给到您。
关于示例,c2000ware ex., 'hic_ex2_config_8bit_adc' 是使用邮箱模式的,其对应的Emif代码位于 <C2000Ware InstallDir>\driverlib\f2838x\examples\c28x\emif\CCS\emif_ex8_8bit_asram_hic_adc
如 TRM 和app note所示,邮箱模式下,访问仅限于 HIC 寄存器空间。 主机设备的 CPU 或者 DMA 应访问所需要的外设,并且将数据复制到 HIC 邮箱寄存器中(或者从 HIC 邮箱寄存器中复制)。
您好,工程师在不同的配置下重新实验过,结果是如果第二次写入超出了封装边界,第一个写入会被忽略。 您能否提供以下信息,以便我们更好地解决您的问题:
十分感谢!
1.emif端口连接,8bits,按照官方文档提供的端口信号连接关系做的。
2.MODECR=0xF40 HOSTCR未配置
3. 8bits-16bits pack:写地址40,41,42,44,45,此时报错44,45与44打包的16位数据的低8位是42的数;
写地址40,42,41,43,不报错,41与40打包,43与42打包。
感谢您提供的详细信息。 工程师正在做实验,有新的结果会尽快给到您。
此外,方便说下您为什么尝试这些ilegal序列吗? 封装逻辑错误功能旨在捕捉应用开发过程中的任何意外缺失。
抱歉回复晚了,我们进行了仿真实验,当序列: 40,41,42,4445 被启动时,写入 41 会被提交,并且packing在地址 44 处被违反。 此时会生成错误和相应的中断。 此时应该停止针对该错误的进一步事务处理,并且任何超过该点的写入都会导致意外写入,因为状态机已经处于错误状态。 您的该问题就是由于写入 45 的尝试超出了该点,因此导致了一个目标写入。
您好,在您提到的序列中,只有当地址 0x44 被发送时,才会违反封装,错误也是在这个时候产生的。因此封装和错误处理是如预期一般正常工作的。 是这样的对吗?
只有被写入的数据是地址 0x42,是因为地址 0x45 的写入发生在错误条件之后,如果存在超出错误条件的访问,就无法保证是否会发生错误。