mirror of
https://github.com/apache/nuttx.git
synced 2025-12-14 15:56:20 +08:00
Compare commits
4 Commits
nuttx-11.0
...
nuttx-10.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f380c919f0 | ||
|
|
367dc9a29a | ||
|
|
a4b1cea3ba | ||
|
|
16748108c5 |
961
ReleaseNotes
961
ReleaseNotes
File diff suppressed because it is too large
Load Diff
@@ -34,6 +34,8 @@
|
|||||||
|
|
||||||
#include "esp32c3.h"
|
#include "esp32c3.h"
|
||||||
|
|
||||||
|
#include "hardware/esp32c3_rom_layout.h"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@@ -64,12 +66,13 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
extern uint8_t *_sheap;
|
extern uint8_t *_sheap;
|
||||||
extern uint8_t *_eheap;
|
extern const struct esp32c3_rom_layout_s *ets_rom_layout_p;
|
||||||
|
|
||||||
board_autoled_on(LED_HEAPALLOCATE);
|
board_autoled_on(LED_HEAPALLOCATE);
|
||||||
|
|
||||||
*heap_start = (FAR void *)&_sheap;
|
*heap_start = (FAR void *)&_sheap;
|
||||||
*heap_size = (size_t)((uintptr_t)&_eheap - (uintptr_t)&_sheap);
|
*heap_size = (size_t)(ets_rom_layout_p->dram0_rtos_reserved_start -
|
||||||
|
(uintptr_t)&_sheap);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
94
arch/risc-v/src/esp32c3/hardware/esp32c3_rom_layout.h
Normal file
94
arch/risc-v/src/esp32c3/hardware/esp32c3_rom_layout.h
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* arch/risc-v/src/esp32c3/hardware/esp32c3_rom_layout.h
|
||||||
|
*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership. The
|
||||||
|
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the
|
||||||
|
* License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __ARCH_RISCV_SRC_ESP32C3_HARDWARE_ESP32C3_ROM_LAYOUT_H
|
||||||
|
#define __ARCH_RISCV_SRC_ESP32C3_HARDWARE_ESP32C3_ROM_LAYOUT_H
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Pre-processor Definitions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/* Structure and functions for returning ROM global layout
|
||||||
|
*
|
||||||
|
* This is for address symbols defined in the linker script,
|
||||||
|
* which may change during ECOs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct esp32c3_rom_layout_s
|
||||||
|
{
|
||||||
|
uintptr_t dram0_stack_shared_mem_start;
|
||||||
|
uintptr_t dram0_rtos_reserved_start;
|
||||||
|
uintptr_t stack_sentry;
|
||||||
|
uintptr_t stack;
|
||||||
|
uintptr_t stack_sentry_app;
|
||||||
|
uintptr_t stack_app;
|
||||||
|
|
||||||
|
/* BTDM data */
|
||||||
|
|
||||||
|
uintptr_t data_start_btdm;
|
||||||
|
uintptr_t data_end_btdm;
|
||||||
|
uintptr_t bss_start_btdm;
|
||||||
|
uintptr_t bss_end_btdm;
|
||||||
|
uintptr_t data_start_btdm_rom;
|
||||||
|
uintptr_t data_end_btdm_rom;
|
||||||
|
uintptr_t data_start_interface_btdm;
|
||||||
|
uintptr_t data_end_interface_btdm;
|
||||||
|
uintptr_t bss_start_interface_btdm;
|
||||||
|
uintptr_t bss_end_interface_btdm;
|
||||||
|
|
||||||
|
/* PHY data */
|
||||||
|
|
||||||
|
uintptr_t dram_start_phyrom;
|
||||||
|
uintptr_t dram_end_phyrom;
|
||||||
|
|
||||||
|
/* Wi-Fi data */
|
||||||
|
|
||||||
|
uintptr_t dram_start_coexist;
|
||||||
|
uintptr_t dram_end_coexist;
|
||||||
|
uintptr_t dram_start_net80211;
|
||||||
|
uintptr_t dram_end_net80211;
|
||||||
|
uintptr_t dram_start_pp;
|
||||||
|
uintptr_t dram_end_pp;
|
||||||
|
uintptr_t data_start_interface_coexist;
|
||||||
|
uintptr_t data_end_interface_coexist;
|
||||||
|
uintptr_t bss_start_interface_coexist;
|
||||||
|
uintptr_t bss_end_interface_coexist;
|
||||||
|
uintptr_t data_start_interface_net80211;
|
||||||
|
uintptr_t data_end_interface_net80211;
|
||||||
|
uintptr_t bss_start_interface_net80211;
|
||||||
|
uintptr_t bss_end_interface_net80211;
|
||||||
|
uintptr_t data_start_interface_pp;
|
||||||
|
uintptr_t data_end_interface_pp;
|
||||||
|
uintptr_t bss_start_interface_pp;
|
||||||
|
uintptr_t bss_end_interface_pp;
|
||||||
|
uintptr_t dram_start_usbdev_rom;
|
||||||
|
uintptr_t dram_end_usbdev_rom;
|
||||||
|
uintptr_t dram_start_uart_rom;
|
||||||
|
uintptr_t dram_end_uart_rom;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __ARCH_RISCV_SRC_ESP32C3_HARDWARE_ESP32C3_ROM_LAYOUT_H */
|
||||||
|
|
||||||
@@ -82,10 +82,6 @@ MEMORY
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Heap ends at the start of the static data of the ROM bootloader */
|
|
||||||
|
|
||||||
_eheap = 0x3fccae00;
|
|
||||||
|
|
||||||
#if CONFIG_ESP32C3_DEVKIT_RUN_IRAM
|
#if CONFIG_ESP32C3_DEVKIT_RUN_IRAM
|
||||||
REGION_ALIAS("default_rodata_seg", dram0_0_seg);
|
REGION_ALIAS("default_rodata_seg", dram0_0_seg);
|
||||||
REGION_ALIAS("default_code_seg", iram0_0_seg);
|
REGION_ALIAS("default_code_seg", iram0_0_seg);
|
||||||
|
|||||||
@@ -650,7 +650,7 @@ static bool _copy_data_from_pkt(FAR struct gs2200m_dev_s *dev,
|
|||||||
|
|
||||||
pkt_dat->remain -= len;
|
pkt_dat->remain -= len;
|
||||||
|
|
||||||
if (0 == pkt_dat->remain)
|
if (0 == pkt_dat->remain || TYPE_BULK_DATA_UDP == pkt_dat->type)
|
||||||
{
|
{
|
||||||
_remove_and_free_pkt(dev, c);
|
_remove_and_free_pkt(dev, c);
|
||||||
}
|
}
|
||||||
@@ -1568,6 +1568,27 @@ errout:
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: gs2200m_send_cmd2
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
static enum pkt_type_e gs2200m_send_cmd2(FAR struct gs2200m_dev_s *dev,
|
||||||
|
FAR char *cmd)
|
||||||
|
{
|
||||||
|
struct pkt_dat_s pkt_dat;
|
||||||
|
enum pkt_type_e r;
|
||||||
|
|
||||||
|
/* Initialize pkt_dat and send */
|
||||||
|
|
||||||
|
memset(&pkt_dat, 0, sizeof(pkt_dat));
|
||||||
|
r = gs2200m_send_cmd(dev, cmd, &pkt_dat);
|
||||||
|
|
||||||
|
/* Release the pkt_dat */
|
||||||
|
|
||||||
|
_release_pkt_dat(dev, &pkt_dat);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: gs2200m_set_opmode
|
* Name: gs2200m_set_opmode
|
||||||
* NOTE: See 5.1.2 Operation Mode
|
* NOTE: See 5.1.2 Operation Mode
|
||||||
@@ -1580,7 +1601,7 @@ static enum pkt_type_e gs2200m_set_opmode(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[20];
|
char cmd[20];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+WM=%d\r\n", mode);
|
snprintf(cmd, sizeof(cmd), "AT+WM=%d\r\n", mode);
|
||||||
t = gs2200m_send_cmd(dev, cmd, NULL);
|
t = gs2200m_send_cmd2(dev, cmd);
|
||||||
|
|
||||||
if (TYPE_OK == t)
|
if (TYPE_OK == t)
|
||||||
{
|
{
|
||||||
@@ -1636,7 +1657,7 @@ errout:
|
|||||||
|
|
||||||
static enum pkt_type_e gs2200m_disassociate(FAR struct gs2200m_dev_s *dev)
|
static enum pkt_type_e gs2200m_disassociate(FAR struct gs2200m_dev_s *dev)
|
||||||
{
|
{
|
||||||
return gs2200m_send_cmd(dev, (char *)"AT+WD\r\n", NULL);
|
return gs2200m_send_cmd2(dev, (char *)"AT+WD\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -1650,7 +1671,7 @@ static enum pkt_type_e gs2200m_enable_dhcpc(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[16];
|
char cmd[16];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+NDHCP=%d\r\n", on);
|
snprintf(cmd, sizeof(cmd), "AT+NDHCP=%d\r\n", on);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -1664,7 +1685,7 @@ static enum pkt_type_e gs2200m_calc_key(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[80];
|
char cmd[80];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+WPAPSK=%s,%s\r\n", ssid, psk);
|
snprintf(cmd, sizeof(cmd), "AT+WPAPSK=%s,%s\r\n", ssid, psk);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -1678,7 +1699,7 @@ static enum pkt_type_e gs2200m_set_security(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[16];
|
char cmd[16];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+WSEC=%d\r\n", mode);
|
snprintf(cmd, sizeof(cmd), "AT+WSEC=%d\r\n", mode);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -1749,7 +1770,8 @@ static enum pkt_type_e gs2200m_set_addresses(FAR struct gs2200m_dev_s *dev,
|
|||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+NSET=%s,%s,%s\r\n",
|
snprintf(cmd, sizeof(cmd), "AT+NSET=%s,%s,%s\r\n",
|
||||||
address, netmask, gateway);
|
address, netmask, gateway);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
|
||||||
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -1763,7 +1785,7 @@ static enum pkt_type_e gs2200m_enable_dhcps(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[20];
|
char cmd[20];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+DHCPSRVR=%d\r\n", on);
|
snprintf(cmd, sizeof(cmd), "AT+DHCPSRVR=%d\r\n", on);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -1777,7 +1799,7 @@ static enum pkt_type_e gs2200m_set_auth(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[16];
|
char cmd[16];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+WAUTH=%d\r\n", mode);
|
snprintf(cmd, sizeof(cmd), "AT+WAUTH=%d\r\n", mode);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_WL_GS2200M_ENABLE_WEP
|
#ifdef CONFIG_WL_GS2200M_ENABLE_WEP
|
||||||
@@ -1793,7 +1815,7 @@ static enum pkt_type_e gs2200m_set_wepkey(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[32];
|
char cmd[32];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+WWEP1=%s\r\n", key);
|
snprintf(cmd, sizeof(cmd), "AT+WWEP1=%s\r\n", key);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@@ -1809,7 +1831,7 @@ static enum pkt_type_e gs2200m_set_wpa2pf(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[64];
|
char cmd[64];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+WWPA=%s\r\n", key);
|
snprintf(cmd, sizeof(cmd), "AT+WWPA=%s\r\n", key);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_WL_GS2200M_ENABLE_WEP */
|
#endif /* CONFIG_WL_GS2200M_ENABLE_WEP */
|
||||||
@@ -2038,21 +2060,10 @@ static enum pkt_type_e gs2200m_send_bulk(FAR struct gs2200m_dev_s *dev,
|
|||||||
static enum pkt_type_e gs2200m_close_conn(FAR struct gs2200m_dev_s *dev,
|
static enum pkt_type_e gs2200m_close_conn(FAR struct gs2200m_dev_s *dev,
|
||||||
char cid)
|
char cid)
|
||||||
{
|
{
|
||||||
struct pkt_dat_s pkt_dat;
|
|
||||||
enum pkt_type_e r;
|
|
||||||
char cmd[15];
|
char cmd[15];
|
||||||
|
|
||||||
/* Prepare cmd */
|
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+NCLOSE=%c\r\n", cid);
|
snprintf(cmd, sizeof(cmd), "AT+NCLOSE=%c\r\n", cid);
|
||||||
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
/* Initialize pkt_dat and send */
|
|
||||||
|
|
||||||
memset(&pkt_dat, 0, sizeof(pkt_dat));
|
|
||||||
r = gs2200m_send_cmd(dev, cmd, &pkt_dat);
|
|
||||||
|
|
||||||
_release_pkt_dat(dev, &pkt_dat);
|
|
||||||
return r;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -2066,7 +2077,7 @@ static enum pkt_type_e gs2200m_enable_bulk(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[20];
|
char cmd[20];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+BDATA=%d\r\n", on);
|
snprintf(cmd, sizeof(cmd), "AT+BDATA=%d\r\n", on);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -2080,7 +2091,7 @@ static enum pkt_type_e gs2200m_enable_echo(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[8];
|
char cmd[8];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "ATE%d\r\n", on);
|
snprintf(cmd, sizeof(cmd), "ATE%d\r\n", on);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -2094,7 +2105,7 @@ static enum pkt_type_e gs2200m_activate_wrx(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[30];
|
char cmd[30];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+WRXACTIVE=%d\r\n", on);
|
snprintf(cmd, sizeof(cmd), "AT+WRXACTIVE=%d\r\n", on);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -2109,7 +2120,7 @@ static enum pkt_type_e gs2200m_set_gpio(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[24];
|
char cmd[24];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+DGPIO=%d,%d\r\n", n, val);
|
snprintf(cmd, sizeof(cmd), "AT+DGPIO=%d,%d\r\n", n, val);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2125,7 +2136,7 @@ static enum pkt_type_e gs2200m_set_loglevel(FAR struct gs2200m_dev_s *dev,
|
|||||||
char cmd[16];
|
char cmd[16];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+LOGLVL=%d\r\n", level);
|
snprintf(cmd, sizeof(cmd), "AT+LOGLVL=%d\r\n", level);
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2139,7 +2150,7 @@ static enum pkt_type_e gs2200m_get_version(FAR struct gs2200m_dev_s *dev)
|
|||||||
char cmd[16];
|
char cmd[16];
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+VER=??\r\n");
|
snprintf(cmd, sizeof(cmd), "AT+VER=??\r\n");
|
||||||
return gs2200m_send_cmd(dev, cmd, NULL);
|
return gs2200m_send_cmd2(dev, cmd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user