假设我通过 FSMC (
STM32F714) 通过 16 位地址/8 位数据总线使用外部存储器。RTOS 正在运行。
当我读/写 32 位宽的数据时,访问这个内存是原子的(在线程安全的意义上)吗?例如,考虑因素是:
- 字节 1 和 2 已经写入,然后发生任务切换,另一个任务使用 FSMC 控制器进行不同的读/写操作;
- 更糟的是:第二个任务访问相同的内存位置,从而覆盖所有 4 个字节,然后,当前一个任务继续时,它完成写入字节 3 和 4。
处理器能否以原子方式处理这些操作,或者在访问相同资源(外部内存或整个 FSMC 基础设施)时是否适合使用互斥量?