К серийнику во FLASH (который располагается под таблицей векторов прерываний, по адресу 0x08000180) обращается только загрузчик. В загрузчике есть таблица функций, которыми активно пользуется рабочая прошивка. То есть, рабочая прошивка вызывает специальную функцию загрузчика, передавая ей номер функции и аргумент для нее в виде указателя. Эта специальная функция берет адрес нужной функции из таблицы по ее номеру и вызывает ее, передавая ей аргумент. Среди этих функций я нашел одну, которая возвращает серийник, читая его с того самого вышеупомянутого адреса. А так же нашел функцию расчета контрольной суммы. Декомпилированный код алгоритма во вложении.
BOOT_API_CrcCalc.c