R128 IO 翻转测试
-
hal_gpio_set_pull(GPIOA(18), GPIO_PULL_UP); hal_gpio_set_direction(GPIOA(18), GPIO_DIRECTION_OUTPUT); hal_gpio_pinmux_set_function(GPIOA(18), GPIO_MUXSEL_OUT); while (1) { hal_gpio_set_data(GPIOA(18), GPIO_DATA_LOW); hal_gpio_set_data(GPIOA(18), GPIO_DATA_HIGH); }
粗略测试一下 R128 的 IO 翻转性能,1.61MHz,另外考虑 RTOS 存在调度
-
配置纯裸机,RTOS 调度关闭
-
配置 640MHz 主频,RTOS调度关闭,1.85MHz
-
@yuzukitsuru 可能 hal_gpio_set_data / hal_gpio_get_data 慢一点 ?
int sunxi_gpio_output(uint32_t pin, uint32_t val) { uint32_t dat; uint32_t bank = GPIO_BANK(pin); uint32_t num = GPIO_NUM(pin); struct sunxi_gpio *pio = &((struct sunxi_gpio_reg *)SUNXI_PIO_BASE)->gpio_bank[bank]; dat = readl(&pio->dat); if(val) dat |= 1 << num; else dat &= ~(1 << num); writel(dat, &pio->dat); return 0; }
GPIO clock 是不是 24MHz ?
-
@audiomonster 有可能,之后检查下
-
@yuzukitsuru 直接操作寄存器,应该还会有提升。函数入栈出栈有消耗。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号