Pull to refresh
2
0
Send message
И если вы мне скажете, что не кайфуете от чувства собственного превосходства, то вы врете.

Вообще-то не все люди нуждаются в том, чтобы гнобить и унижать более слабых, будь то в школе, в армии или на работе. Так что не равняйте всех по себе.

Спасибо, очень наглядно. Увидел, что Вы это и в статье объясняли, просто я сразу не разобрался.

Поясните, пожалуйста, момент, зачем нужно irq_disable перед WFI. И что делает irq_disable — cpsid i или что?

Ура, наконец-то я понял, что означала фраза "транзистор работает за счет захвата коллектором основных носителей, инжектируемых эмиттером в базу", когда изучал электронику в институте.

А самые продвинутые уже говорят: "Вы сделали мой день"

Почему они говорят "he didn't make it" вместо "he hasn't made it" ?

У меня 8 ГБ ОЗУ, своп не используется. Иногда какой-то процесс отжирает всё ОЗУ, и система впадает в ступор минут на 20-30, непрерывно светя индикатором жёсткого диска. После этого этот процесс убивается, память освобождается и всё продолжает работать нормально. Но что происходит в эти 20-30 минут?

Объяснение очень простое. Использование констант таким образом позволяет поиграться с их разными значениями в отладчике, не перепрошивая девайс всякий раз.

У меня вот в микроконтроллере стек uIP крутится, там есть функция uip_process — 1118 строк + 69 goto, а тут какие-то жалкие тойотовские 740 строк.

После Ctrl-r надо набрать название регистра (что-то вроде именованного буфера обмена), из которого вставлять текст. В данном случае "правильнее" набрать двойную кавычку (регистр по умолчанию), т.е. <Ctrl-r>";<Esc>. Или можно <Ctrl-o>p;<Esc>.

Перенос левого мизинца на Esc делается без отрыва кисти от поверхности в отличие от переноса всего правого предплечья на блок стрелок (и тем более на мышь).
Мне как раз нравится из-за названий, по-моему, очень читабельно, особенно если параметры не такие очевидные, как UARTSpeed115200. И узнал я о таком способе весьма недавно из книги «21st Century C» (Ben Klemens).
Вариант без статической структуры, о которой не надо знать пользователю.

Либа:
typedef struct UARTConfigT
{
UARTSpeedT speed;
UARTStopT stop;
UARTParityT parity;
} UARTConfigT;

int UARTConfigUse(UARTConfigT config)
{
return DoSomething();
}

// инициализация со значениями по умолчанию
#define UARTConfig(...) UARTConfigUse((UARTConfigT){.speed = UARTSpeed9600, .stop = UARTStop1, .parity = UARTParityNone, __VA_ARGS__})

Инициализация с нужными параметрами:
UARTConfig(.speed = UARTSpeed115200, .parity = UARTParityEven);
Далеко не сразу — это как? Попробуйте пробежать 400 м в полную силу, хотя большинству людей и 100 м хватит.
Бит TC в регистре статуса, прерывание от него маскируется битом TCIE в USART_CR1.
Вызов pxMBFrameCBTransmitterEmpty() в UART_IRQ_Handler() при передаче последнего байта вызывает vMBPortSerialEnable( TRUE, FALSE ), что выключает DE в то время как этот байт только начал передаваться по линии.
По поводу костыля. Вы обрабатываете событие TXE передатчика, поэтому линия DE деактивируется в момент начала передачи последнего байта, а не тогда, когда этот байт уже целиком «выдвинется». Поэтому либо Ваш костыль, либо после записи последнего байта нужно ждать события TC (transmission complete).
Не узнал свою Matrox G200 на фото! Она ведь AGP-шная была.

Information

Rating
Does not participate
Registered
Activity