• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

MBED на RTL

pvvx

Активный участник сообщества
Проверялось на Win7 x 64.
Устанавливаем Python27, git, CLI:
GitHub - ARMmbed/mbed-cli: ARM mbed Command Line Interface
Ставим тестовый пример: First application on mbed CLI - mbed OS 5 Handbook

Скачиваем ARM mbed OS для RTL и распаковываем в директорию blinky\mbed-os-example-blinky\mbed-os.
Запускаем компиляцию:
Код:
E:\RTL87xx\mbed-os-master\blinky\mbed-os-example-blinky>mbed compile -m REALTEK_RTL8195AM -t GCC_ARM
Building project mbed-os-example-blinky (REALTEK_RTL8195AM, GCC_ARM)
Scan: .
Scan: FEATURE_BLE
Scan: FEATURE_COMMON_PAL
Scan: FEATURE_LWIP
Scan: FEATURE_UVISOR
Scan: FEATURE_ETHERNET_HOST
Scan: FEATURE_LOWPAN_BORDER_ROUTER
Scan: FEATURE_LOWPAN_HOST
Scan: FEATURE_LOWPAN_ROUTER
Scan: FEATURE_NANOSTACK
Scan: FEATURE_NANOSTACK_FULL
Scan: FEATURE_THREAD_BORDER_ROUTER
Scan: FEATURE_THREAD_END_DEVICE
Scan: FEATURE_THREAD_ROUTER
Scan: FEATURE_STORAGE
Scan: env
Scan: mbed
+------------------------+-------+-------+-------+
| Module                 | .text | .data |  .bss |
+------------------------+-------+-------+-------+
| Fill                   |    68 |     0 |     9 |
| Misc                   | 35445 |  2180 |   428 |
| hal                    |   238 |     0 |     0 |
| platform               |   690 |     4 |    13 |
| rtos                   |    38 |     4 |     4 |
| rtos/rtx               |  5809 |    20 | 10966 |
| targets/TARGET_Realtek |  2696 |     0 |  1968 |
| Subtotals              | 44984 |  2208 | 13388 |
+------------------------+-------+-------+-------+
Allocated Heap: unknown
Allocated Stack: unknown
Total Static RAM memory (data + bss): 15596 bytes
Total RAM memory (data + bss + heap + stack): 15596 bytes
Total Flash memory (text + data + misc): 47192 bytes

Image: .\BUILD\REALTEK_RTL8195AM\GCC_ARM\mbed-os-example-blinky.bin
Получаем бинарники для прошивки или загрузки в RAM.
Чтобы мигал красный светодиод на RTL00 модуле, исправить код:
Код:
#include "mbed.h"
DigitalOut led1(PA_4);
// main() runs in its own thread in the OS
int main()  {
    while (true) {
        led1 = !led1;
        wait(0.5);
    }
}
 
Последнее редактирование:

pvvx

Активный участник сообщества
Пример с WiFi:
Код:
#include "mbed.h"
#include "TCPSocket.h"
#include "RTWInterface.h"

RTWInterface wifi;
TCPSocket socket;

int main() {
    printf("\r\nExample network-socket HTTP client\n\n");
 
    // Brings up the network interface
    wifi.connect("SSID", "PASWORD", NSAPI_SECURITY_WPA_WPA2);
    const char *ip = wifi.get_ip_address();
    const char *mac = wifi.get_mac_address();
    printf("IP address is: %s\r\n", ip ? ip : "No IP");
    printf("MAC address is: %s\r\n", mac ? mac : "No MAC");

    // Open a socket on the network interface, and create a TCP connection to mbed.org
    socket.open(&wifi);
    socket.connect("developer.mbed.org", 80);

    // Send a simple http request
    char sbuffer[] = "GET / HTTP/1.1\r\nHost: developer.mbed.org\r\n\r\n";
    int scount = socket.send(sbuffer, sizeof sbuffer);
    printf("sent %d [%.*s]\r\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);

    // Recieve a simple http response and print out the response line
    char rbuffer[64];
    int rcount = socket.recv(rbuffer, sizeof rbuffer);
    printf("recv %d [%.*s]\r\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);

    // Close the socket to return its memory and bring down the network interface
    printf("\r\nDisconnect\r\n");
    socket.close();
    wifi.disconnect();
}

Код:
E:\RTL87xx\mbed-os-master\blinky\mbed-os-example-blinky>mbed compile -m REALTEK_RTL8195AM -t GCC_ARM
Building project mbed-os-example-blinky (REALTEK_RTL8195AM, GCC_ARM)
Scan: .
Scan: FEATURE_BLE
Scan: FEATURE_COMMON_PAL
Scan: FEATURE_LWIP
Scan: FEATURE_UVISOR
Scan: FEATURE_ETHERNET_HOST
Scan: FEATURE_LOWPAN_BORDER_ROUTER
Scan: FEATURE_LOWPAN_HOST
Scan: FEATURE_LOWPAN_ROUTER
Scan: FEATURE_NANOSTACK
Scan: FEATURE_NANOSTACK_FULL
Scan: FEATURE_THREAD_BORDER_ROUTER
Scan: FEATURE_THREAD_END_DEVICE
Scan: FEATURE_THREAD_ROUTER
Scan: FEATURE_STORAGE
Scan: env
Scan: mbed
+------------------------+--------+-------+-------+
| Module                 |  .text | .data |  .bss |
+------------------------+--------+-------+-------+
| Fill                   |    373 |    13 |    55 |
| Misc                   | 198015 |  8253 | 36869 |
| drivers                |     52 |     0 |     0 |
| features/FEATURE_LWIP  |  35651 |    81 | 37784 |
| features/netsocket     |   4782 |    85 |    60 |
| hal                    |    186 |     0 |     0 |
| platform               |   1460 |     4 |   269 |
| rtos                   |    213 |     4 |     4 |
| rtos/rtx               |   8269 |    20 | 10967 |
| targets/TARGET_Realtek |  21488 |    12 |  2644 |
| Subtotals              | 270489 |  8472 | 88652 |
+------------------------+--------+-------+-------+
Allocated Heap: unknown
Allocated Stack: unknown
Total Static RAM memory (data + bss): 97124 bytes
Total RAM memory (data + bss + heap + stack): 97124 bytes
Total Flash memory (text + data + misc): 278961 bytes

Image: .\BUILD\REALTEK_RTL8195AM\GCC_ARM\mbed-os-example-blinky.bin
Лог с RTL00:
Код:
===== Enter SRAM-Boot 1 ====
CPU CLK: 83333333 Hz, SOC FUNC EN: 0x20111157
Img Sign: RTKWin, Go @ 0x10006049
Initializing WIFI ...
WIFI initialized
WIFI is already running
Example network-socket HTTP client
RTL8195A[Driver]: set ssid [********]
RTL8195A[Driver]: start auth to **:**:**:**:**:**
RTL8195A[Driver]: auth success, start assoc
RTL8195A[Driver]: association success(res=1)
RTL8195A[Driver]: set pairwise key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4)
RTL8195A[Driver]: set group key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:2
IP address is: 192.168.1.122
MAC address is: 00:f8:87:11:00:12
sent 45 [GET / HTTP/1.1]
recv 64 [HTTP/1.1 301 Moved Permanently]
Disconnect
ioctl[SIOCGIWESSID] ssid = NULL, not connected
Вложение с исходником и файлами для примера запуска кода в RAM через Jtag (для упрощенного запуска скопировать файлы в папку mbed-os-example-blinky, и исправить путь в батниках к JLink.exe).
 

Вложения

Последнее редактирование:

pvvx

Активный участник сообщества
MBED Patch для RTL8710AF связанный со стартом CPU из ROM-BIOS на 83MHz.
Если требуется переключить на 166MHz или другую частоту -> см. rtl8195a_init.c
 

Вложения

mikush

New member
Какие действия нужно совершить над сгенерированном elf файлом, что бы можно было загрузить в rtl для дебага.
пробовал как в hello world, обезьянничаю так как ни чего не понимаю в этом :confused:
-DBinFileName="\"Debug/EmbeddedProject15.bin\"" rtl8710_flash_boot.S -o flash.elf -DSeg1StartAddr=268460056
ругается rtl8710_flash_boot.S(37): error : invalid constant (10006018) after fixup
268460056 - адрес .text , дергаю со пиновского скрипта, который шаманит и делает ram_2_prepend.bin
 

pvvx

Активный участник сообщества
Какие действия нужно совершить над сгенерированном elf файлом, что бы можно было загрузить в rtl для дебага.
пробовал как в hello world, обезьянничаю так как ни чего не понимаю в этом :confused:
Не могу помочь, т.к. пока не пользуюсь DAP-Link и отладкой. (к текущим макеткам подключен полный Jtag и SWD) Отладку вписываю прямо в СИ коде с выводом в терминал - так процесс отладки проходит у меня быстрее при загрузке приложения в RAM, чем ковыряться в отладчике в регистрах CPU и либах без исходников...
 
Сверху Снизу