TA的每日心情 | 开心 昨天 01:53 |
---|
签到天数: 122 天 [LV.7]常住居民III
荣誉版主
- 积分
- 3843
|
发表于 2023-1-20 06:29:32
|
显示全部楼层
总结:
1. 由楼主贴出的 C?COPY 反汇编代码可看出, 楼主用的是 STC8H系列
2. 按照楼主的思路, 用 DMA 和 纯软件 方式, 分别 测试了 数据交换 和 数据移动, 这两项功能. 数据长度为 DMA传输充许的最大值 256字节, 这时 DMA的 传输效率应该是最高的.
3. DMA传输, 分别测试了 查询方式 和 中断方式, 结论是 执行时间影响不大, 即 DMA执行, 不占用CPU的正常程序运行时间.
4. DMA进行读写的过程中,和CPU执行程序, 几乎没什么交叉干扰, 可通俗理解为 DMA传输, 是一个专门用于读写传输XRAM内存的专用CPU内核,
即 2核 CPU, 一个 通用CPU主核 用于一切操作, 另一个 专用CPU核 仅限于数据搬家传输. 用于在实时性要求不高的情况下, 减轻 通用CPU主核 的 工作负担.
5. 对实时性要求高的, 个人建议还是以纯软件 方式为佳, 时间容易精确控制.
例如1, 需通过 ADC定时采样 N个点, 以便通过 FFT计算各种输入数据, 如 ADC无定时采样功能, 只能通过外界干扰采样时间, 以取得精确的时间间隔, 这时 DMA基本没用.
例如2, HMI刷屏, 通常对速度无要求的, 以 DMA刷屏为佳, 但想获得更好的动态动画效果, 个人觉得还是以纯软件 方式为佳, 这时刷屏速度更快反应更灵敏, DMA速度上做不到.
|
|