Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Embedded Linux
Холодный или горячий старт?
Wad1970
Добавлено 22.06.2016 11:11
0
Сообщение: 1
Wad1970
5

Пункты: 3734
Регистрация: 24.11.2014
Как узнать была ли перезагрузка (например от WDT) или выключали питание?
На imx6?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 22.06.2016 12:11 Редактировалось 22.06.2016 12:22 Сообщение: 2
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Посмотрите лог u-boot - он пишет об этом

Reset cause: POR - сброс по питанию (Power-On Reset)

Reset cause: WDOG - перезагрузка от WDT

Цитата

char *get_reset_cause(void)
{
u32 cause;
struct src *src_regs = (struct src *)SRC_BASE_ADDR;

cause = readl(&src_regs->srsr);
writel(cause, &src_regs->srsr);

switch (cause) {
case 0x00001:
case 0x00011:
return "POR";
case 0x00004:
return "CSU";
case 0x00008:
return "IPP USER";
case 0x00010:
return "WDOG";
case 0x00020:
return "JTAG HIGH-Z";
case 0x00040:
return "JTAG SW";
case 0x10000:
return "WARM BOOT";
default:
return "unknown reset";
}
}


насчет ядра не знаю - можно ли там узнать причину
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 22.06.2016 15:38 Сообщение: 3
Wad1970
5

Пункты: 3734
Регистрация: 24.11.2014
get_reset_cause - а из пользовательской программы ее нельзя вызвать?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 22.06.2016 16:01 Сообщение: 4
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Можно, только вместо физического адреса

struct src *src_regs = (struct src *)SRC_BASE_ADDR;

использовать виртуальный - отобразить через mmap в адресном пространстве программы

http://stackoverflow.com/questions/12040303/accessing-physical-address-from-user-space
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 23.06.2016 07:43 Сообщение: 5
Wad1970
5

Пункты: 3734
Регистрация: 24.11.2014
Спасибо.
!!! Придумал как косвенно узнать о причине своего сброса !!! - спросить у соседней платы - если питание выключалось то и она сбросилась.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux