Я из Болгарии, так что моего Русского извините, да и не все букви у меня на клавиатуре. Если кого-то не устраиваеть - могу писать по Английски.
Тест сделан так:
- SIM800H , ядро MT6260_S00_1308B07SIM800H32_EAT_115200
- терминалная програма MySerial 9600, 8N1 или 7E1 на обеих концах.
- Embedded 'C' програма отвечает звонка, ждеть CONNECT 9600, потом файл принимаеться построчно и отправляеться через UART или грузиться от UART и отправляеться через CSD. У програми 2 циклических буфера между UART и CSD для передачи и приема - в первого CSD пишет, UART читает; во втором UART пишет CSD читает и отправляет. Длина буферов менялась по мере надобности.
- Звенящий Модем - SIM900 или SIM300, управляеться АТ командами терминалной програми.
- отправлались файли 20к, 64к, 128к, 180к, 256к через UART.

Итоги и рекомендации:

1. Скорост приема по CSD SIM800H 9600 держить хорошо.

2. Скорост передачи SIM800H по оценки времени от окончания посилки фаила через UART до окончании приема того же файла на 'дальной' стороне - ниже 2400bps!

В итоге пришлось сделать циклические буфери такой длини: 190kB для того, в котором UART пишет и 10kB для буфера в котором CSD пишет.
Даже тогда у 256к файла произходит накритие конца записи входящие через UART данние где то около 220к, т.е. пока UART записал около 190к, CSD не смог передать 30к!

Интересно почему в DATA-Sheet-е стоит 14,4 и как етого добились?
Старий вариант той-же програми - на SIM900 почти буферами на нуждалась- там я ползую буфера по 2к.

3. Функции
reallen = eat_uart_write(port1, (char*) mysend, sendlen);
reallen = eat_modem_write(mysend, sendlen);
обязательно ползуйтесь только в CallBack events
EAT_EVENT_MDM_READY_WR
EAT_EVENT_UART_READY_RD
EAT_EVENT_UART_READY_WR
иначе если reallen<sendlen, т.е. буфер периферии не можеть принят sendlen, пропадают части строки порядка 10-20 байтов.
Так у меня изначално дозаправка модема и серийного произходила по 100mS таймера (так оно и произходит в SIM900 варианте програми) и ошибки били в каждой второй строке.
Кстати за ети 100mS модем успевал передать 24 байта в среднем (столько он дозаправлял), а должен 100 (1mS/Byte для 9600).

Хотелось чтобь Ваш опит поделили.