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.

[参考译文] AM3352:CCS 裸机中开发的程序访问器件寄存器的速度很慢

Guru**** 2468460 points
Other Parts Discussed in Thread: AM3352

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1470441/am3352-the-program-developed-in-ccs-bare-metal-has-slow-speed-of-accessing-device-registers

器件型号:AM3352

工具与软件:

空 MMUConfigAndEnable (void)

/*
**定义 AM335x 的 DDR 内存区域。 DDR 可配置为正常
**在用户/特权模式下具有 R/W 访问权限的内存。 高速缓存属性
**在此处指定、
**内部-直写、无写分配
**外部-回写、写分配
*/
region regionDdr ={
MMU_PGTYPE_SECTION、START_ADDR_DDR、NUM_SECTIONS _DDR
MMU_MEMTYPE_NORMAL_NON_SHARELED (MMU_CACHE_WT_NOWA、
MMU_CACHE_WB_WA)、
MMU_REGION_NON_SECURE、MMU_AP_PRV_RW_USR_RW
(unsigned int*) pageTable
};
/*
**定义 AM335x 的 OCMC RAM 区域。 给定的 DDR 区域属性相同。
*/
region regionocmc ={
MMU_PGTYPE_SECTION、START_ADDR_OCMC、NUM_SECTIONS _OCMC
MMU_MEMTYPE_NORMAL_NON_SHARELED (MMU_CACHE_WT_NOWA、
MMU_CACHE_WB_WA)、
MMU_REGION_NON_SECURE、MMU_AP_PRV_RW_USR_RW
(unsigned int*) pageTable
};

/*
**定义设备内存区域。 OCMC 和 DDR 之间的区域为
**配置为设备内存、在用户/特权模式下具有 R/W 访问权限。
**此外,该区域被标记为'执行从不'。
*/
Region regionDev ={
MMU_PGTYPE_SECTION、START_ADDR_DEV、NUM_SECTIONS
MMU_MEMTYPE_NORMAL_SHARELED (MMU_CACHE_WT_NOVA、
MMU_CACHE_WB_WA)、
MMU_REGION_NON_SECURE、
MMU_AP_PRV_RW_USR_RW | MMU_SECTION_EXEC_Never、
(unsigned int*) pageTable
};

/*初始化 PAGE 表和 MMU */
MMUInit (unsigned int*) pageTable);

/*映射定义的区域*/
MMUMemRegionMap (&regionDdr);
MMUMemRegionMap (&regionOcmc);
MMUMemRegionMap (&regionDev);

/*现在可以安全启用 MMU */
MMUEnable((unsigned int*)pageTable);
}

#define START_ADDR_DDR (0x80000000)
#define START_ADDR_DEV (0x44000000)
#define START_ADDR_OCMC (0x40300000)
#define NUM_SECTIONS _DDR (512)
#define NUM_SECTIONS _DEV (960)
#define NUM_SECTIONS_OCMC (1)

 MMU 如上所述配置、启用高速缓存、读取寄存器时间通过 IO 端口开关进行监控。 程序如下

TEST_4.12.10_SET Speed_By (0);

DMA_DFD =*(volatile unsigned int *)(0x49800000 + 0x288);//* PR_DMA_DFDSTBREF;
// DMA_DFD =*(volatile unsigned int *)(0x44E07000);

TEST_4.12.10_SET Speed_By (1);

示波器测量的时间为230ns、请问这个时间是否可以优化?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们不能再支持 AM335x 的裸机软件开发。 请参阅 此公告 并在其中查找资源。

    此致、

    建中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、建中

    感谢您的答复。
    但是、我还在 Linux 下测试了同样的问题、测得的寄存器访问速度也是230ns。 如何配置 AM3352器件寄存器来提高访问速度?

    此致、

    Jianlei

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的建磊:

    请打开有关在 Linux 中访问寄存器的新主题。

    谢谢!

    建中