Linux 如何在x86 gpio上应用SWIM协议?
这是一个奇怪的塞纳里奥。我们使用x86 soc作为主机,使用stm8s MCU作为客户端。它们通过2根电线连接在GPIO(sOC侧)和RST和SWIM(MCU侧)之间。因此,通过这种方式,我们可以通过SWIM协议刷新MCU固件 问题就在这里。进入SWIME模式后(通过低频gpio操作,输入序列很容易上升/下降),我们需要向MCU发送数据。但该协议需要以高频(16M时钟)发送数据。我尝试了一个简单的gpio操作,没有延迟:Linux 如何在x86 gpio上应用SWIM协议?,linux,x86,driver,gpio,Linux,X86,Driver,Gpio,这是一个奇怪的塞纳里奥。我们使用x86 soc作为主机,使用stm8s MCU作为客户端。它们通过2根电线连接在GPIO(sOC侧)和RST和SWIM(MCU侧)之间。因此,通过这种方式,我们可以通过SWIM协议刷新MCU固件 问题就在这里。进入SWIME模式后(通过低频gpio操作,输入序列很容易上升/下降),我们需要向MCU发送数据。但该协议需要以高频(16M时钟)发送数据。我尝试了一个简单的gpio操作,没有延迟: for(i=0; i<10; i++) { gpio_set
for(i=0; i<10; i++) {
gpio_set_value(SWIM, 0);
gpio_set_value(SWIM, 1);
}
for(i=0;我非常依赖于什么gpio\u set\u值()
事实上是这样。谢谢J,gpio_set_value做了很多判断和验证工作。但是x86是一件复杂的事情,我不认为控制gpio寄存器是一个好主意。我找到了一些用于SWIM的示例。但是它们都在实时系统上运行。它们在STM32上使用DMA+定时器。我们可以使用这种方法来实现高gpio频率吗?