eerimoq / simba Goto Github PK
View Code? Open in Web Editor NEWSimba Embedded Programming Platform.
License: Other
Simba Embedded Programming Platform.
License: Other
Create a task in user_init()
and call sys_start()
in the task to make it the main simba thread. Call the espressif schedule function so it can schedule it's tasks.
Use a binary semaphore to make FreeRTOS schedule the Simba thread from interrupts. This Simba idle thread will continiously wait for this semaphore to be given by an interrupt handler.
The ESP32 is the successor to the ESP8266. It is a dual core MCU with lots of RAM and ROM. The SDK runs on FreeRTOS and there are an Arduino core and IoT framework already being developed by Espressif and the ESP community.
https://github.com/espressif/esp-idf
https://github.com/espressif/arduino-esp32
Take the same approach as for ESP8266; run Simba in an FreeRTOS thread. It's the only implementation that can be accomplished in a reasonable amount of time.
Adafruit ESP32 development board (out of stock):
https://www.adafruit.com/products/3269
Steps in porting Simba to the ESP32.
3pp/
.mcus/
and boards/
.main()
and compile, upload and run. Build system changes will be required.Include the JSON parser JSMN in the slib package. It has an MIT License.
if i use arduino.cpp code like this:
#include <simba.h>
yes, it's a empty file, only include simba.h, then i use
pio run
i got many error message:
mbp:simba-heater wwx$ pio run
[Sat Sep 10 20:12:52 2016] Processing esp12e (platform: espressif8266, build_unflags: -Wno-implicit-function-declaration, build_flags: -DCONFIG_START_NETWORK=0, board: esp12e, framework: simba)
---------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Collected 0 compatible libraries
Looking for dependencies...
Project does not have dependencies
Compiling .pioenvs/esp12e/src/arduino/arduino.o
cc1plus: warning: command line option '-std=gnu99' is valid for C/ObjC but not for C++ [enabled by default]
In file included from /Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/lwip/ip_addr.h:38:0,
from /Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/lwip/ip.h:39,
from /Users/wwx/.platformio/packages/framework-simba/src/inet/network_interface.h:26,
from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:196,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv4/lwip/ip4_addr.h:213:23: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv4/lwip/ip4_addr.h:213:31: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv4/lwip/ip4_addr.h:213:40: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv4/lwip/ip4_addr.h:213:49: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F, \
^
In file included from /Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/lwip/ip_addr.h:39:0,
from /Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/lwip/ip.h:39,
from /Users/wwx/.platformio/packages/framework-simba/src/inet/network_interface.h:26,
from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:196,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv6/lwip/ip6_addr.h:263:23: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv6/lwip/ip6_addr.h:263:31: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv6/lwip/ip6_addr.h:263:40: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv6/lwip/ip6_addr.h:263:49: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv6/lwip/ip6_addr.h:263:58: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv6/lwip/ip6_addr.h:263:67: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv6/lwip/ip6_addr.h:263:76: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F, \
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/lwip/ipv6/lwip/ip6_addr.h:263:85: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
LWIP_DEBUGF(debug, ("%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F":%"X16_F, \
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:44:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/oam/settings.h:38:9: error: duplicate 'const'
FAR const char *name_p;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:56:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:66:12: error: using typedef-name 'chan_t' after 'struct'
struct chan_t **chans_pp;
^
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:28:14: note: 'chan_t' has a previous declaration here
typedef void chan_t;
^
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:75:8: error: using typedef-name 'chan_t' after 'struct'
struct chan_t {
^
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:28:14: note: 'chan_t' has a previous declaration here
typedef void chan_t;
^
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:118:22: error: using typedef-name 'chan_t' after 'struct'
int chan_init(struct chan_t *self_p,
^
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:28:14: note: 'chan_t' has a previous declaration here
typedef void chan_t;
^
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:170:31: error: using typedef-name 'chan_t' after 'struct'
int chan_is_polled_isr(struct chan_t *self_p);
^
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:28:14: note: 'chan_t' has a previous declaration here
typedef void chan_t;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/kernel/sys.h:24:0,
from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:57,
from src/arduino/arduino.cpp:1:
.pioenvs/esp12e/SimbaFramework/src/kernel/ports/esp/gnu/sys_port.h:24:13: error: duplicate 'const'
#define FAR const
^
/Users/wwx/.platformio/packages/framework-simba/src/kernel/sys.h:178:7: note: in expansion of macro 'FAR'
const FAR char *sys_get_info(void);
^
.pioenvs/esp12e/SimbaFramework/src/kernel/ports/esp/gnu/sys_port.h:24:13: error: duplicate 'const'
#define FAR const
^
/Users/wwx/.platformio/packages/framework-simba/src/kernel/sys.h:188:7: note: in expansion of macro 'FAR'
const FAR char *sys_get_config(void);
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:61:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/sync/queue.h:70:12: error: using typedef-name 'chan_t' after 'struct'
struct chan_t base;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:56:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:28:14: note: 'chan_t' has a previous declaration here
typedef void chan_t;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:62:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/sync/event.h:29:12: error: using typedef-name 'chan_t' after 'struct'
struct chan_t base;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:56:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:28:14: note: 'chan_t' has a previous declaration here
typedef void chan_t;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/kernel/sys.h:24:0,
from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:57,
from src/arduino/arduino.cpp:1:
.pioenvs/esp12e/SimbaFramework/src/kernel/ports/esp/gnu/sys_port.h:24:13: error: duplicate 'const'
#define FAR const
^
/Users/wwx/.platformio/packages/framework-simba/src/filesystems/fs.h:159:11: note: in expansion of macro 'FAR'
const FAR char *path_p;
^
.pioenvs/esp12e/SimbaFramework/src/kernel/ports/esp/gnu/sys_port.h:24:13: error: duplicate 'const'
#define FAR const
^
/Users/wwx/.platformio/packages/framework-simba/src/filesystems/fs.h:433:27: note: in expansion of macro 'FAR'
const FAR char *path_p,
^
.pioenvs/esp12e/SimbaFramework/src/kernel/ports/esp/gnu/sys_port.h:24:13: error: duplicate 'const'
#define FAR const
^
/Users/wwx/.platformio/packages/framework-simba/src/filesystems/fs.h:466:27: note: in expansion of macro 'FAR'
const FAR char *path_p,
^
.pioenvs/esp12e/SimbaFramework/src/kernel/ports/esp/gnu/sys_port.h:24:13: error: duplicate 'const'
#define FAR const
^
/Users/wwx/.platformio/packages/framework-simba/src/filesystems/fs.h:511:29: note: in expansion of macro 'FAR'
const FAR char *path_p,
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:80:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:60:38: error: duplicate 'const'
ssize_t std_sprintf(char *dst_p, FAR const char *fmt_p, ...);
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:77:26: error: duplicate 'const'
FAR const char *fmt_p,
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:91:24: error: duplicate 'const'
ssize_t std_printf(FAR const char *fmt_p, ...);
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:104:25: error: duplicate 'const'
ssize_t std_vprintf(FAR const char *fmt_p, va_list *ap_p);
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:118:41: error: duplicate 'const'
ssize_t std_fprintf(chan_t *chan_p, FAR const char *fmt_p, ...);
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:132:42: error: duplicate 'const'
ssize_t std_vfprintf(chan_t *chan_p, FAR const char *fmt_p, va_list *ap_p);
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:152:33: error: duplicate 'const'
int std_strcpy(char *dst_p, FAR const char *src_p);
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:163:39: error: duplicate 'const'
int std_strcmp(const char *str_p, FAR const char *fstr_p);
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:174:22: error: duplicate 'const'
int std_strcmp_f(FAR const char *fstr0_p,
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:175:22: error: duplicate 'const'
FAR const char *fstr1_p);
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:187:21: error: duplicate 'const'
int std_strncmp(FAR const char *fstr_p,
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:201:23: error: duplicate 'const'
int std_strncmp_f(FAR const char *fstr0_p,
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:202:23: error: duplicate 'const'
FAR const char *fstr1_p,
^
/Users/wwx/.platformio/packages/framework-simba/src/text/std.h:214:20: error: duplicate 'const'
int std_strlen(FAR const char *fstr_p);
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/drivers/uart.h:25:0,
from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:157,
from src/arduino/arduino.cpp:1:
.pioenvs/esp12e/SimbaFramework/src/drivers/ports/esp/uart_port.h:38:12: error: using typedef-name 'chan_t' after 'struct'
struct chan_t chout;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:56:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:28:14: note: 'chan_t' has a previous declaration here
typedef void chan_t;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:191:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/inet/socket.h:26:12: error: using typedef-name 'chan_t' after 'struct'
struct chan_t base;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:56:0,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/src/sync/chan.h:28:14: note: 'chan_t' has a previous declaration here
typedef void chan_t;
^
In file included from /Users/wwx/.platformio/packages/framework-simba/src/inet/network_interface/wifi_station_espressif.h:26:0,
from /Users/wwx/.platformio/packages/framework-simba/src/simba.h:201,
from src/arduino/arduino.cpp:1:
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/espressif/esp_sta.h:360:6: error: use of enum 'dhcp_status' without previous declaration
enum dhcp_status wifi_station_dhcpc_status(void);
^
/Users/wwx/.platformio/packages/framework-simba/3pp/ESP8266_RTOS_SDK/include/espressif/esp_sta.h:360:49: error: invalid type in declaration before ';' token
enum dhcp_status wifi_station_dhcpc_status(void);
^
*** [.pioenvs/esp12e/src/arduino/arduino.o] Error 1
====================================================== [ERROR] Took 2.26 seconds ======================================================
One sample is enough.
The HTTP server currently has one listener thread and on or more client threads. This is memory consuming and it should be considered to only have one thread that both listens for connections and acts on requests. It's unlikely that more than one client will be active at a time in small systems.
Improve the socket module readability, correctness and functionality by calling LwIP functions from the LwIP thread and adding poll functionality for recv()
and accept()
.
Implement support for a SPI Flash File System on the ESP32.
Use the non blocking interface.
I find those lines in http_server.c file:
/* Save the action and path in the request struct. */
strcpy(request_p->path, path_p);
if (strcmp(action_p, "GET") == 0) {
request_p->action = http_server_request_action_get_t;
} else {
return (-1);
}
but, in most cases, POST method is used to submit form, I hope POST method will be implement in simba project.
Port the kernel and the pin and uart drivers to the STM32VLDISCOVERY board.
The port has already been started, but is far from complete.
I try to use the UDP protocol for the communication between the client and the server.
The client sends a message to the server periodically, and the server may also send messages to the UDP port, which is monitored by the client.
The client is behand in a NAT server.
So I used two thrd to carry out this operation, a thrd dedicated users to monitor the UDP port data, another thrd dedicated cycle of sending messages.
At the same time, in order to allow the client to send the port and the server to send the port is the same socket, I put this socket is set to the global variable
At the beginning of a simple client to send a message when quite normal, but once the server to respond to a message, immediately went wrong.
I guess it is because socket_send_to and socket_recvfrom will change the thrd_p element of the socket structure.
Do not know how to achieve this kind of demand is better?
//global
struct socket_t udp;
// thrd_1
socket_open_udp(&udp);
socket_bind(&udp, &local_addr);
while(1) {
socket_recvfrom(&udp, buf, 31, 0, &remote_server_addr);
}
// thrd_2
while(1) {
socket_sendto(&udp, buf, strlen(buf), 0, &remote_server_addr);
thrd_sleep(10);
}
Create a port of Micro Python to execute the program below.
import sys
import time
import simba.pin as pin
import simba.board as board
def main():
"""Main function of the Python blink application.
"""
print("Python version:", sys.version)
# Initialize the LED pin and set it high.
led = pin.Pin(board.PIN_LED, pin.OUTPUT)
led.write(1)
# Toggle the LED state periodically.
while True:
time.sleep(0.5)
led.toggle()
if __name__ == "__main__":
main()
the result like this:
it's broken on test_read_write
================================== TEST BEGIN ==================================
app: app_name-8.0.0 built 2016-09-15 17:24 CST by wwx.
board: ESP-12E Development Board
mcu: Espressif ESP8266 @ 80 MHz, 82 kB dram, 4 MB flash
enter: test_init
exit: test_init: PASSED
enter: test_format
exit: test_format: PASSED
enter: test_read_write
๏ฟฝ@*r๏ฟฝ๏ฟฝP๏ฟฝ๏ฟฝ๏ฟฝK๏ฟฝt๏ฟฝdr๏ฟฝ-@๏ฟฝ๏ฟฝ.๏ฟฝัช๏ฟฝยฝ๏ฟฝa ๏ฟฝ@*r๏ฟฝ๏ฟฝP๏ฟฝ๏ฟฝ๏ฟฝK๏ฟฝt๏ฟฝdr๏ฟฝ.@๏ฟฝ๏ฟฝ.๏ฟฝัช๏ฟฝยฝ๏ฟฝa /t๏ฟฝ$v'
use this test code:
https://github.com/eerimoq/simba/tree/master/tst/filesystems/spiffs
is there some quick method to use it ?
I found esp 12e has defined FSTR to a static char
simba library use many FSTR string, it cost about 10k+ mem
if i change FSTR to empty, the board is also work
so i don't understand why use FSTR
improve data security
Created a config.h file in root folder with the following content:
/* Default system tick frequency. */
When running the frequency is still 100. Maybe I am missing something.
in commit: 5d724e3
esp8266 is not work~~~~~
main.c code
#include "simba.h"
int main()
{
sys_start();
return 0;
}
simba project has mqtt_client
in path: src/inet/mqtt_client.c
i read test code try understand how to use it
but i not found how to set remote server addr and port
Boards that Simba might be ported to in the future. Any requests are welcome! =)
https://www.arduino.cc/en/Main/ArduinoBoardZero
Simba is a new framework in PlatformIO. Support for ESP must be added to the Scons build script used by the PlatformIO. Also, make sure that the rest of the boards builds.
When all boards works, set a tag and release it to PlatgormIO.
I use 'network_interface_set_ip_address()' function to setting ip address for WIFI interface, after this action, I can see the ip address use 'inet/network_interface/list' command in shell, but the network is unreachable.
btw, howto config netmask & gateway address?
Make sockets work on ESP32. ESP-IDF uses newer version of LwIP and potentially other architectural differences to ESP8266.
Thank you for this great project of simba !
I use test code (locate on 'tst/filesystems/spiffs/' ) to verify this issue.
I change
BTASSERT(spiffs_format(&fs) == 0);
to
if ( spiffs_mount(&fs, &config, workspace, fdworkspace, sizeof(fdworkspace), cache, sizeof(cache), NULL) == SPIFFS_ERR_NOT_A_FS) {
std_printf("Formatting file system\n");
BTASSERT(spiffs_format(&fs) == 0);
}
in `test_format(struct harness_t *harness_p)' function, and I get this result after reset the ESP.
enter: test_format
Formatting file system
exit: test_format: PASSED
Does SPIFFS need to format file system every time on boot under ESP12E?
if wifi ssid or password isn't correct
network_interface_wifi_station_espressif_start will blocked and device hang-up
is there some solution ?
Implement the SPI module for the ESP.
if set CONFIG_START_FILESYSTEM = 1
then formating the fs every boot time
Would it simlipy ARM porting if CMSIS is used?
https://docs.particle.io/datasheets/photon-datasheet/#pin-out-diagrams
Implement basic support for the Particle IO Photon board.
The Broadcom WiFi driver source code may not be published. This puts some restrictions on this port. An option is to use the headers and object code libraries from particle io firmware repositiry.
Implement the I2C module for the ESP.
I setup a http server with esp12e, listener give stack 2048, http_connection give stack 8192.
if http response a large http data, like 5KB html page.
then the client can't open the page normal.
is that because socket_write size bigger then TCP_SND_BUF ?
Implement the ADC module for the ESP.
Currently only UDP sockets are supported in Simba. This issue will add support for TCP sockets for the ESP.
Implement the PWM module for the ESP.
Implement the flash driver for esp to make spiffs work with flash storage. At the same time the flash driver API should be changed to include an erase function and low level read and write functions.
in my main.c
code, and try to connect to a invalid ip and port
#include "simba.h"
static struct socket_t socket;
static struct inet_addr_t remote_host_address;
static struct inet_addr_t local_host_address;
int main()
{
sys_start();
socket_open_tcp(&socket);
inet_aton("8.8.8.8", &remote_host_address.ip);
remote_host_address.port = 80;
inet_aton("0.0.0.0", &local_host_address.ip);
local_host_address.port = 6000;
socket_bind(&socket, &local_host_address);
socket_connect(&socket, &remote_host_address);
std_printf("can you see it ?\r\n");
}
the code never run to
std_printf("can you see it ?\r\n");
--- Miniterm on /dev/cu.SLAB_USBtoUART 38400,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
File system mounted.
Connecting to WiFi with SSID 'MyWiFiSSID'.
Waiting for a connection to WiFi with SSID 'MyWiFiSSID'.
Waiting for a connection to WiFi with SSID 'MyWiFiSSID'.
Waiting for a connection to WiFi with SSID 'MyWiFiSSID'.
Connected to WiFi with SSID 'MyWiFiSSID'. Got IP address '192.168.38.149'.
$
$
$
$
$
$
$
$
$
Implement a preemptive scheduler to meet hard real time requirements.
Currently a cooperative scheduler is implemented, and it works very well in most cases. Hard real time requirements can be implemented in interrupt context or with interrupts disabled.
cd project
mkdir test
pio test
how can i do with testing feature?
$ make -s console
Traceback (most recent call last):
File "../../simba/simba/make/console.py", line 6, in
import readchar
File "/usr/lib/python2.7/site-packages/readchar/init.py", line 3, in
from .readchar import readchar, readkey
File "/usr/lib/python2.7/site-packages/readchar/readchar.py", line 13, in
from .readchar_windows import readchar
File "/usr/lib/python2.7/site-packages/readchar/readchar_windows.py", line 5, in
import msvcrt
ImportError: No module named msvcrt
../../simba/simba/make/app.mk:137: receptet fรถr mรฅlet โconsoleโ misslyckades
make: *** [console] Fel 1
Note that readchar is installed
#include "simba.h"
static struct network_interface_wifi_station_espressif_t wifi;
static struct shell_t shell;
int main()
{
sys_start();
network_interface_module_init();
socket_module_init();
ping_module_init();
network_interface_wifi_station_espressif_module_init();
network_interface_wifi_station_espressif_init(&wifi, "SSID", "PASSWORD");
network_interface_add(&wifi.network_interface);
network_interface_start(&wifi.network_interface);
shell_init(&shell, sys_get_stdin(), sys_get_stdout(), NULL, NULL, "admin", "admin");
shell_main(&shell);
uint8_t buf[16] = "hello";
struct socket_t udp;
struct inet_addr_t local_addr, remote_addr;
socket_open_udp(&udp);
inet_aton("192.168.38.149", &local_addr.ip);
local_addr.port = 8888;
inet_aton("192.168.38.249", &remote_addr.ip);
remote_addr.port = 8888;
socket_bind(&udp, &local_addr);
for(int i = 0; i < 200; i++) {
socket_sendto(&udp, buf, 16, 0, &remote_addr);
thrd_sleep_us(1000000);
}
socket_close(&udp);
return (0);
}
Verify that all input arguments in exported functions have valid values and stop the program otherwise.
Print a message with file, line, condition and an optional description when an error occurs.
The regular expression module supports most commonly used regex syntax, but there are a few important parts missing. Those should be implemented.
'^'
) and end ('$'
)of line.'|'
).(...)
).Also, refactor and remove debug prints to reduce the code size and make the code more readable.
>>> app: hello_world, board: linux <<<
CC /home/wuwx/tmp/simba/src/inet/network_interface/slip.c
In file included from /home/wuwx/tmp/simba/3pp/lwip-1.4.1/src/include/lwip/arch.h:43,
from /home/wuwx/tmp/simba/3pp/lwip-1.4.1/src/include/lwip/debug.h:35,
from /home/wuwx/tmp/simba/3pp/lwip-1.4.1/src/include/lwip/opt.h:46,
from /home/wuwx/tmp/simba/3pp/lwip-1.4.1/src/include/lwip/init.h:35,
from /home/wuwx/tmp/simba/src/inet/network_interface/slip.c:43:
/home/wuwx/tmp/simba/src/inet/arch/cc.h:39: error: redefinition of typedef 'u8_t'
/home/wuwx/tmp/simba/src/filesystems/spiffs/config.h:252: note: previous declaration of 'u8_t' was here
/home/wuwx/tmp/simba/src/inet/arch/cc.h:40: error: redefinition of typedef 's8_t'
/home/wuwx/tmp/simba/src/filesystems/spiffs/config.h:255: note: previous declaration of 's8_t' was here
/home/wuwx/tmp/simba/src/inet/arch/cc.h:41: error: redefinition of typedef 'u16_t'
/home/wuwx/tmp/simba/src/filesystems/spiffs/config.h:253: note: previous declaration of 'u16_t' was here
/home/wuwx/tmp/simba/src/inet/arch/cc.h:42: error: redefinition of typedef 's16_t'
/home/wuwx/tmp/simba/src/filesystems/spiffs/config.h:256: note: previous declaration of 's16_t' was here
/home/wuwx/tmp/simba/src/inet/arch/cc.h:43: error: redefinition of typedef 'u32_t'
/home/wuwx/tmp/simba/src/filesystems/spiffs/config.h:254: note: previous declaration of 'u32_t' was here
/home/wuwx/tmp/simba/src/inet/arch/cc.h:44: error: redefinition of typedef 's32_t'
/home/wuwx/tmp/simba/src/filesystems/spiffs/config.h:257: note: previous declaration of 's32_t' was here
make[1]: *** [build/linux/obj/home/wuwx/tmp/simba/src/inet/network_interface/slip.o] Error 1
make: *** [all] Error 2
may because this:
Implement the pin module for the ESP.
Would love to see support for AP mode in ESP8266.
We use AP mode as a captive configuration portal a bunch: i.e., if it can't find the right SSID to connect to, it'll just create an AP. Best practice is of course to periodically scan for the SSID again.
Anyway, I may be volunteering to develop this, but I'm swamped for a few weeks.
in arduino, string are save in .data section/segment
and i use pio run can show how many mem i used
but simba i guess some string are saved in .text section/segment
my question is :
it just a consult
#include <simba.h>
int main()
{
const char* html = ""
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
"HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld HelloWorld"
;
printf("%s", html);
sys_start();
return (0);
}
$ pio run
[Fri Sep 23 11:52:06 2016] Processing esp12e (platform: espressif8266, board: esp12e, framework: simba)
------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Collected 0 compatible libraries
Looking for dependencies...
Project does not have dependencies
Compiling .pioenvs/esp12e/src/main.o
Linking .pioenvs/esp12e/firmware.elf
/home/wwx/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: address 0x3fffc518 of .pioenvs/esp12e/firmware.elf section `.bss' is not within region `dram0_0_seg'
/home/wwx/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: address 0x3fffc518 of .pioenvs/esp12e/firmware.elf section `.bss' is not within region `dram0_0_seg'
collect2: error: ld returned 1 exit status
*** [.pioenvs/esp12e/firmware.elf] Error 1
==================================================== [ERROR] Took 1.98 seconds ====================================================
Port the kernel and the pin and uart drivers to the STM32F3DISCOVERY board.
The board can be bought here.
The port has already been started, but is far from complete.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.