#include <stdint.h>
#include <stddef.h>
#include <stdio.h>
static void foo(void){
volatile uint32_t *temp_addr;
temp_addr = (uint32_t*)(0x01C20C00);
*temp_addr =0;
}
int main(){
tinit();
};
Он компилируется, но в результате возвращает сообщение Segmentation fault
. Я просто хочу сбросить все биты в регистре 0x01c200c00
.
0x01C20C00
? - person dragosht   schedule 15.01.2020Segmentation fault
, потому что этот адрес не отображается в памяти процесса. - person dragosht   schedule 15.01.2020TIMER
напрямую, минуя все средства защиты kernel-space. Это не сработает (если бы это сработало, не было бы разделения между kernel-space и user-space). - person David C. Rankin   schedule 15.01.2020apropos timer
в окне консоли, чтобы просмотреть список доступных функций таймера:getitimer, settimer, timer_create, ...
- person David C. Rankin   schedule 15.01.2020loadb
или напрямую загружая на H3 с помощью USB и sunxi-fel — это то, что вам нужно. Если вы хотите узнать, как взаимодействовать/использовать оборудование H3 в Linux, вам уже ответили в комментариях выше, и вы можете посмотреть код драйвера таймера H3 для Linux здесь. - person Frant   schedule 15.01.2020