RTKlib/постпроцессинг

Нет самой возможности или просто адреса ещё не найдены?

Нет возможности модифицировать RAM, адреса же лежат рядом с идентификаторами,
их искать не надо. Официальный путь, как я понимаю, это изменение LLC,
но там можно нарваться на серьезную криптографию, а не на дедский сад
как в CFG-LIC. Можно конечно прямо во флеше поменять адрес какого-нибудь
левого сообщения на адрес raw, и пользоваться потом этим левым сообщением
после перепрошивки. Fletcher64 остался как и был, но не исключена еще
какая-нибудь цифровая подпись текста (как в старой доброй гисруссо :sunglasses:)

Т.е. там какие-то хеши есть в самом чипе отдельно от прошивке?

Раз они считают SHA в железе, то я бы не удивился.
Не зря там есть такая фраза


INCOMPATIBLE HARDWARE -> NO GNSS OPERATION

Меня интересует опыт других людей, т.к. у меня raw и так работает out of the box.
Кстати в новом мануале по ublox-m8 тоже
почему-то правильный LLC (страница 3 внизу), хотя официально
так быть не должно. Акционеры должны настучать автору по голове.

На самом деле все обстоит несколько не так. Сообщение RXM-SFRBX доступно всем и везде.
Сообщения RXM-RAWX, TRK-MEAS, TRK-SFRBX тоже в прошивке, но в зависимости от
битов LLC выдаются в нормальном виде, или в виде недокументированного
шифрованного контейнера (0x2700).
Алгоритм естественно неизвестен, но так как само кодированное сообщение известно,
то это интересная тема для дипломной работы по криптоанализу :sunglasses:

Из 9 “видимых” спутников Galileo (E11, E12, E14, E19, E20, E22, E24, E26, E30)
я (но это может сделать любой с NEO-M8N и совместимыми как Navilock NL-8*)
уже отследил E12, E22, E24, E26, E30. Интересно будет поглядеть на E14 с его эллиптической
орбитой, где эксцентриситет не помещается в битовое поле альманаха.

Edit
LLC это TXT сообщение типа


$GPTXT,01,01,02,LLC 7FFFFFFF-FFFFFFED-FFFFFFFF-FFFFFF9E-FFFFFF69*2D

состоящее из 5 полей


Low-Level configuration
  Communication section    0xFFFFFFFF
  Clock section            0xFFFFFFFF
  Clock offset             0xFFFFFFFF
  Software feature section 0xFFFFFFAE (3)
  Generic section          0xFFFFFFFF

Оно действительно шифровано или там просто мусор? УЦентр как-то реагирует на него, ну там пароль для расшифровки спрашивает?

Правильно шифрованное сообщение от мусора статистически неотличимо.
УЦентр выдает такую последовательость пакетов
2700(68 байт) 0213 (48 байт) 2700(68 байт) 0213 (48 байт) … 2700(68 байт) 0213 (48 байт)
Для 0215 (в представлении 2700) байтов естественно больше, но длина всех пакетов кратна 16.
Внутреннюю структуру надо более внимательно изучать, но они вроде все начинаются с 2
(версия пакета?) и остальное выглядит скорее как заголовок + простой XOR, так как многие позиции
не меняются во времени.

Все парсеры UBX сообщений находятся в UBX.dll, и для
0x2700 там ничего нет.

Ну чтобы попытаться разгадать, надо как минимум сплиттер и два девайся с грязным хаком, или на худой конец с 7/6 версии. Хотя для начала можно проверить CRC считается для этого сообщения правильно, а то вдруг оно считается для правильного содержимого :slight_smile:

To avoid any misunderstandings by google translate, i will write it in english.
I have got full raw Galileo datastream with the 3.01 firmware on NEO-M8N, but it is a special hardware setup
which i don’t want to disclose. This data is not yet validated.
The proper generic solution should consider dissecting the SEC-0 packet contents (0x2700).

Нормальный phase lock на E14, на первый взгляд на RINEX ничего необычного.
Таким образом за сутки видны все 9 наблюдаемых спутников.

С Neo-M8t прошивка 3,01 работает RAWX,
c Neo-M8N не работает,

Хм… может и давно, но нас заметили, на странице поддержки ссылка на нас, правда не на эту тему, а русский раздел.
А вообще залез почитать о проблемах на гитхабе про глонасс.

/* тут были разные грязные мысли про PPP-Static */

Ну и буквально в обед вышла - rtklib 2.4.3 b8

{2 0 len_lo len_hi} (len-1)/16*16 [16] ← 128бит + xor + permutation + [sha256?]
лучше не трогать, сделано явно для галочки. кому надо тот сам разберется.

Any information of the architecture of UBX M8030 chips? Cortex-M3 or M4?
How about the memory mapping?

Many thanks.

I think it is a custom design based on Cortex-M3 core.

These values are reported by u-center:


*************************************************
* ROM      addr 00000000..0007FFFF size 524288  *
*************************************************
*************************************************
* RAM2     addr 00200000..00207FFF size  32768  *
*************************************************
*************************************************
* FLASH    addr 00800000..0087FFFF size 524288  *
*************************************************
*************************************************
* RAM1     addr 20000000..2001FFFF size 131072  *
*************************************************
*************************************************
* RAM3     addr 20080000..2009FFFF size 131072  *
*************************************************

Peripherals:
addr         size
40000000 00000098 
40002000 00000028
40004000 00000044 SYSTEM
40006000 00000058 I2C?
4000a000 00000224 UART1
4000c000 0000086c USB
4000e000 00000224 (UART2?)
40010000 0000017c
40012000 0000017c
40014000 0000017c
40016000 000000bc GPIO
40018000 00000010 WDOG
4001a000 000000bc
40020000 0000007c RTC
44040000 00000220
440a0000 00000274
440c0000 00000040

Thank you very much.
It seems the RAM (around 300kB) is very large compared to other cortex-M3 designs.
I’ll try to find the code related to Peripherals like uart1

I think those numbers are for the M7020, which is basically the UBX6 ported from an ARM7 to Cortex-M3

On the G8030, which I think is a 96 MHz Cortex-M3 we have

RAM1 is 0x20000000…0x2002BFFF 176KB, it’s mirrored at 0x20100000 the initial SP being 0x2012C000
RAM2 is 0x20080000…0x2009FFFF 128KB
ROM is 0x00000000…0x00087FFF 544KB (2.01)
RAM3 is 0x00200000…0x00207FFF 32KB (NVRAM)
QSPI is 0x00800000 (FIS) usually a 2MB (16Mbit)

Товарищи, в городе rtklib cо своей rtk сможет выдать точность до 1 м?

Чудес он не творит, если другое ПО не даёт нужные результат, то надеяться не стоит.

You are right, i’ve looked at the wrong notes, but it seems that the CPU core differences between
G7020 and G8030 are marginal.

The initial stack pointer for G7020 is 20120000

Is it the “real” NVRAM or just BBRAM ?

FIS is the first 4K block of FLASH, which is read out from flash.xml
Some fake chinese M8N modules have 512K 4bit SPI chips, and there are designs
using 1MB SPI flash (Navilock).