usb_net编译

This commit is contained in:
ranchuan
2025-09-26 16:57:44 +08:00
parent d1b4de66b7
commit d8c1b2018b
12 changed files with 518 additions and 633 deletions

View File

@@ -30,14 +30,17 @@
"Project/Src/rt-thread/include",
"Project/Src/zlib",
"Project/Src/NES",
"Project/Src/TinyUSB/examples/device/cdc_dual_ports/src",
"Project/Src/TinyUSB/src/class/cdc",
"Project/Src/TinyUSB/examples/device/net_lwip_webserver/src",
"Project/Src/TinyUSB/src/class/net",
"Project/Src/TinyUSB/src/common",
"Project/Src/TinyUSB/src/device",
"Project/Src/TinyUSB/src/portable/synopsys/dwc2",
"Project/Src/TinyUSB/src",
"Project/Src/TinyUSB/src/osal",
"Project/Src/TinyUSB/hw"
"Project/Src/TinyUSB/hw",
"Project/Src/TinyUSB/lib/networking",
"Project/Src/rt-thread/components/net/lwip-2.1.0/src/include",
"Project/Src/rt-thread/components/net/lwip-2.1.0/src/arch/include"
],
"defines": [
"USE_STDPERIPH_DRIVER",
@@ -51,7 +54,7 @@
"PKG_TINYUSB_DEVICE_ENABLE"
],
"windowsSdkVersion": "10.0.22621.0",
"compilerPath": "D:/Program Files/arm-gnu-toolchain/bin/arm-none-eabi-gcc",
"compilerPath": "C:/ARM_GCC/bin/arm-none-eabi-gcc",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-arm"

View File

@@ -1,12 +1,9 @@
#include "mymem.h"
#include "sdram.h"
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>ccm<63>ڴ棬1<E6A3AC><31>ʹ<EFBFBD>ã<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
#define USE_CCM 0
#ifndef BOOTLOADER
#define OS_RTT
#ifdef OS_RTT
@@ -15,15 +12,20 @@
#define IRQ_ENABLE() rt_exit_critical()
#else
#include "os.h"
#define IRQ_DISABLE() {CPU_SR_ALLOC(); CPU_CRITICAL_ENTER();}
#define IRQ_DISABLE() \
{ \
CPU_SR_ALLOC(); \
CPU_CRITICAL_ENTER(); \
}
#define IRQ_ENABLE() CPU_CRITICAL_EXIT()
#endif
#else
#define IRQ_DISABLE() { }
#define IRQ_ENABLE() { }
#define IRQ_DISABLE() \
{}
#define IRQ_ENABLE() \
{}
#endif
static void exmem_init(void); // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u32 exmem_malloc(u32 size); // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
static u8 exmem_free(u32 offset); // <20>ڴ<EFBFBD><DAB4>ͷ<EFBFBD>
@@ -34,22 +36,19 @@ static u8 mem_free(u32 offset); //
static void ccm_init(void);
void mymem_init (void)
{
void mymem_init(void) {
mem_init();
exmem_init();
// ccm_init();
}
#define EXMEM_BLOCK_SIZE (256) // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>СΪ64<36>ֽ<EFBFBD>
#define EXMEM_MAX_SIZE ((uint64_t)((SDRAM_USER_SIZE))*EXMEM_BLOCK_SIZE/(EXMEM_BLOCK_SIZE+2))
#define EXMEM_ALLOC_TABLE_SIZE ((u32)(EXMEM_MAX_SIZE/EXMEM_BLOCK_SIZE)&(~3)) //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С,<2C><><EFBFBD><EFBFBD>Ϊż<CEAA><C5BC><EFBFBD><EFBFBD>˫<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
#define EXMEM_MAX_SIZE \
((uint64_t)((SDRAM_USER_SIZE)) * EXMEM_BLOCK_SIZE / (EXMEM_BLOCK_SIZE + 2))
#define EXMEM_ALLOC_TABLE_SIZE \
((u32)(EXMEM_MAX_SIZE / EXMEM_BLOCK_SIZE) & \
(~3)) // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С,<2C><><EFBFBD><EFBFBD>Ϊż<CEAA><C5BC><EFBFBD><EFBFBD>˫<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ涼<DAB4><E6B6BC>˫<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
#define EXMEM_BASE ((u8 *)(SDRAM_USER_ADDR + EXMEM_ALLOC_TABLE_SIZE * 2))
@@ -60,7 +59,6 @@ u32 exmemtblsize ; //
u32 exmemblksize; // <20>ڴ<EFBFBD><DAB4>ֿ<EFBFBD><D6BF><EFBFBD>С
uint64_t exmemsize; // <20>ڴ<EFBFBD><DAB4>ܴ<EFBFBD>С
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct _m_mallco_dev exmallco_dev;
@@ -68,32 +66,26 @@ struct _m_mallco_dev exmallco_dev;
//*des:Ŀ<>ĵ<EFBFBD>ַ
//*src:Դ<><D4B4>ַ
// n:<3A><>Ҫ<EFBFBD><D2AA><EFBFBD>Ƶ<EFBFBD><C6B5>ڴ泤<DAB4><E6B3A4>(<28>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ)
void mymemcpy(void *des,void *src,u32 n)
{
void mymemcpy(void *des, void *src, u32 n) {
u8 *xdes = des;
u8 *xsrc = src;
while(n--)*xdes++=*xsrc++;
while (n--)
*xdes++ = *xsrc++;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
//*s:<3A>ڴ<EFBFBD><DAB4>׵<EFBFBD>ַ
// c :Ҫ<><D2AA><EFBFBD>õ<EFBFBD>ֵ
// count:<3A><>Ҫ<EFBFBD><D2AA><EFBFBD>õ<EFBFBD><C3B5>ڴ<EFBFBD><DAB4><EFBFBD>С(<28>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA>λ)
void mymemset(void *s,u8 c,u32 count)
{
void mymemset(void *s, u8 c, u32 count) {
u8 *xs = s;
while(count--)*xs++=c;
while (count--)
*xs++ = c;
}
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
static void exmem_init(void)
{
static void exmem_init(void) {
exmemtblsize = EXMEM_ALLOC_TABLE_SIZE; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С
exmemblksize = EXMEM_BLOCK_SIZE; // <20>ڴ<EFBFBD><DAB4>ֿ<EFBFBD><D6BF><EFBFBD>С
exmemsize = EXMEM_MAX_SIZE; // <20>ڴ<EFBFBD><DAB4>ܴ<EFBFBD>С
@@ -102,7 +94,6 @@ static void exmem_init(void)
exmallco_dev.memmap = EXMEMMAP_BASE; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
exmallco_dev.memrdy = 0; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
mymemset(exmallco_dev.memmap, 0, exmemtblsize * 2); // <20>ڴ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mymemset(exmallco_dev.membase, 0, exmemsize); // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
exmallco_dev.memrdy = 1; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>OK
@@ -111,13 +102,12 @@ static void exmem_init(void)
// <20><>ȡ<EFBFBD>ڴ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// <20><><EFBFBD><EFBFBD>ֵ:ʹ<><CAB9><EFBFBD><EFBFBD>(0~100)
int exmem_perused(void)
{
int exmem_perused(void) {
u32 used = 0;
u32 i;
for(i=0;i<exmemtblsize;i++)
{
if(exmallco_dev.memmap[i])used++;
for (i = 0; i < exmemtblsize; i++) {
if (exmallco_dev.memmap[i])
used++;
}
return (used * 10000) / (exmemtblsize);
}
@@ -126,21 +116,24 @@ int exmem_perused(void)
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// size:Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С(<28>ֽ<EFBFBD>)
// <20><><EFBFBD><EFBFBD>ֵ:0XFFFFFFFF,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<3B><><EFBFBD><EFBFBD>,<2C>ڴ<EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
static u32 exmem_malloc(u32 size)
{
static u32 exmem_malloc(u32 size) {
signed long offset = 0;
u32 nmemb; // <20><>Ҫ<EFBFBD><D2AA><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
u32 cmemb = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
u32 i;
// if(!mallco_dev.memrdy)mallco_dev.init();//δ<><CEB4>ʼ<EFBFBD><CABC>,<2C><>ִ<EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
if(size==0)return 0XFFFFFFFF;//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
if (size == 0)
return 0XFFFFFFFF; // <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
nmemb = size / exmemblksize; // <20><>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
if(size%exmemblksize)nmemb++;
if (size % exmemblksize)
nmemb++;
for (offset = exmemtblsize - 1; offset >= 0; offset--) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(!exmallco_dev.memmap[offset])cmemb++;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else cmemb=0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (!exmallco_dev.memmap[offset])
cmemb++; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else
cmemb = 0; // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (cmemb == nmemb) // <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nmemb<6D><62><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
{
for (i = 0; i < nmemb; i++) // <20><>ע<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ǿ<EFBFBD>
@@ -157,8 +150,7 @@ static u32 exmem_malloc(u32 size)
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// offset:<3A>ڴ<EFBFBD><DAB4><EFBFBD>ַƫ<D6B7><C6AB>
// <20><><EFBFBD><EFBFBD>ֵ:0,<2C>ͷųɹ<C5B3>;1,<2C>ͷ<EFBFBD>ʧ<EFBFBD><CAA7>;
static u8 exmem_free(u32 offset)
{
static u8 exmem_free(u32 offset) {
u32 i;
if (!exmallco_dev.memrdy) // δ<><CEB4>ʼ<EFBFBD><CABC>,<2C><>ִ<EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
{
@@ -174,22 +166,21 @@ static u8 exmem_free(u32 offset)
exmallco_dev.memmap[index + i] = 0;
}
return 0;
}else return 2;//ƫ<>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>.
} else
return 2; // ƫ<>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>.
}
//------------------------------------<2D>ڲ<EFBFBD>SRAM---------------------------------------
#define SRAM_USER_SIZE (120*1024)
#define SRAM_USER_SIZE (110 * 1024)
u8 g_sram_mem[SRAM_USER_SIZE];
#define MEM_BLOCK_SIZE (32) // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>СΪ64<36>ֽ<EFBFBD>
#define MEM_MAX_SIZE (((SRAM_USER_SIZE))*MEM_BLOCK_SIZE/(MEM_BLOCK_SIZE+2))
#define MEM_ALLOC_TABLE_SIZE ((MEM_MAX_SIZE/MEM_BLOCK_SIZE)&(~3)) //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С,<2C><><EFBFBD><EFBFBD>Ϊż<CEAA><C5BC><EFBFBD><EFBFBD>˫<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
#define MEM_MAX_SIZE \
(((SRAM_USER_SIZE)) * MEM_BLOCK_SIZE / (MEM_BLOCK_SIZE + 2))
#define MEM_ALLOC_TABLE_SIZE \
((MEM_MAX_SIZE / MEM_BLOCK_SIZE) & (~3)) // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С,<2C><><EFBFBD><EFBFBD>Ϊż<CEAA><C5BC><EFBFBD><EFBFBD>˫<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
#define SRAM_USER_ADDR ((u32)g_sram_mem)
@@ -197,25 +188,17 @@ u8 g_sram_mem[SRAM_USER_SIZE];
#define MEM_BASE ((u8 *)(SRAM_USER_ADDR + MEM_ALLOC_TABLE_SIZE * 2))
#define MEMMAP_BASE ((u16 *)(SRAM_USER_ADDR))
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u32 memtblsize; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С
u32 memblksize; // <20>ڴ<EFBFBD><DAB4>ֿ<EFBFBD><D6BF><EFBFBD>С
u32 memsize; // <20>ڴ<EFBFBD><DAB4>ܴ<EFBFBD>С
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct _m_mallco_dev mallco_dev;
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
static void mem_init(void)
{
static void mem_init(void) {
memtblsize = MEM_ALLOC_TABLE_SIZE; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С
memblksize = MEM_BLOCK_SIZE; // <20>ڴ<EFBFBD><DAB4>ֿ<EFBFBD><D6BF><EFBFBD>С
memsize = MEM_MAX_SIZE; // <20>ڴ<EFBFBD><DAB4>ܴ<EFBFBD>С
@@ -226,53 +209,46 @@ static void mem_init(void)
mallco_dev.memmap = MEMMAP_BASE; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
mallco_dev.memrdy = 0; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
mymemset(mallco_dev.memmap, 0, memtblsize * 2); // <20>ڴ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mymemset(mallco_dev.membase, 0, memsize); // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mallco_dev.memrdy = 1; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>OK
}
// <20><>ȡ<EFBFBD>ڴ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// <20><><EFBFBD><EFBFBD>ֵ:ʹ<><CAB9><EFBFBD><EFBFBD>(0~100)
int mem_perused(void)
{
int mem_perused(void) {
u32 used = 0;
u32 i;
for(i=0;i<memtblsize;i++)
{
if(mallco_dev.memmap[i])used++;
for (i = 0; i < memtblsize; i++) {
if (mallco_dev.memmap[i])
used++;
}
return (used * 10000) / (memtblsize);
}
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>(<28>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// size:Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С(<28>ֽ<EFBFBD>)
// <20><><EFBFBD><EFBFBD>ֵ:0XFFFFFFFF,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<3B><><EFBFBD><EFBFBD>,<2C>ڴ<EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
static u32 mem_malloc(u32 size)
{
static u32 mem_malloc(u32 size) {
signed long offset = 0;
u16 nmemb; // <20><>Ҫ<EFBFBD><D2AA><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
u16 cmemb = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
u32 i;
// if(!mallco_dev.memrdy)mallco_dev.init();//δ<><CEB4>ʼ<EFBFBD><CABC>,<2C><>ִ<EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
if(size==0)return 0XFFFFFFFF;//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
if (size == 0)
return 0XFFFFFFFF; // <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
nmemb = size / memblksize; // <20><>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
if(size%memblksize)nmemb++;
if (size % memblksize)
nmemb++;
for (offset = memtblsize - 1; offset >= 0; offset--) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(!mallco_dev.memmap[offset])cmemb++;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else cmemb=0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (!mallco_dev.memmap[offset])
cmemb++; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else
cmemb = 0; // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (cmemb == nmemb) // <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nmemb<6D><62><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
{
for (i = 0; i < nmemb; i++) // <20><>ע<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ǿ<EFBFBD>
@@ -289,8 +265,7 @@ static u32 mem_malloc(u32 size)
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// offset:<3A>ڴ<EFBFBD><DAB4><EFBFBD>ַƫ<D6B7><C6AB>
// <20><><EFBFBD><EFBFBD>ֵ:0,<2C>ͷųɹ<C5B3>;1,<2C>ͷ<EFBFBD>ʧ<EFBFBD><CAA7>;
static u8 mem_free(u32 offset)
{
static u8 mem_free(u32 offset) {
int i;
if (!mallco_dev.memrdy) // δ<><CEB4>ʼ<EFBFBD><CABC>,<2C><>ִ<EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
{
@@ -306,22 +281,12 @@ static u8 mem_free(u32 offset)
mallco_dev.memmap[index + i] = 0;
}
return 0;
}else return 2;//ƫ<>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>.
} else
return 2; // ƫ<>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>.
}
//------------------------------------<2D>ڲ<EFBFBD>CCM---------------------------------------
#if USE_CCM == 1
#define CCM_USER_SIZE 64 * 1024
@@ -330,7 +295,8 @@ u8 g_ccm_mem[CCM_USER_SIZE] __attribute__((at(0x10000000)));
#define CCM_BLOCK_SIZE (32) // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>СΪ64<36>ֽ<EFBFBD>
#define CCM_MAX_SIZE (((CCM_USER_SIZE)) * CCM_BLOCK_SIZE / (CCM_BLOCK_SIZE + 2))
#define CCM_ALLOC_TABLE_SIZE ((CCM_MAX_SIZE/CCM_BLOCK_SIZE)&(~3)) //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С,<2C><><EFBFBD><EFBFBD>Ϊż<CEAA><C5BC><EFBFBD><EFBFBD>˫<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
#define CCM_ALLOC_TABLE_SIZE \
((CCM_MAX_SIZE / CCM_BLOCK_SIZE) & (~3)) // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С,<2C><><EFBFBD><EFBFBD>Ϊż<CEAA><C5BC><EFBFBD><EFBFBD>˫<EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
#define CCM_USER_ADDR ((u32)g_ccm_mem)
@@ -338,25 +304,17 @@ u8 g_ccm_mem[CCM_USER_SIZE] __attribute__((at(0x10000000)));
#define CCM_BASE ((u8 *)(CCM_USER_ADDR + CCM_ALLOC_TABLE_SIZE * 2))
#define CCMMAP_BASE ((u16 *)(CCM_USER_ADDR))
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u32 ccm_memtblsize; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С
u32 ccm_memblksize; // <20>ڴ<EFBFBD><DAB4>ֿ<EFBFBD><D6BF><EFBFBD>С
u32 ccm_memsize; // <20>ڴ<EFBFBD><DAB4>ܴ<EFBFBD>С
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struct _m_mallco_dev ccm_mallco_dev;
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
static void ccm_init(void)
{
static void ccm_init(void) {
ccm_memtblsize = CCM_ALLOC_TABLE_SIZE; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>С
ccm_memblksize = CCM_BLOCK_SIZE; // <20>ڴ<EFBFBD><DAB4>ֿ<EFBFBD><D6BF><EFBFBD>С
ccm_memsize = CCM_MAX_SIZE; // <20>ڴ<EFBFBD><DAB4>ܴ<EFBFBD>С
@@ -365,53 +323,46 @@ static void ccm_init(void)
ccm_mallco_dev.memmap = CCMMAP_BASE; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
ccm_mallco_dev.memrdy = 0; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
mymemset(ccm_mallco_dev.memmap, 0, ccm_memtblsize * 2); // <20>ڴ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mymemset(ccm_mallco_dev.membase, 0, ccm_memsize); // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ccm_mallco_dev.memrdy = 1; // <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>OK
}
// <20><>ȡ<EFBFBD>ڴ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// <20><><EFBFBD><EFBFBD>ֵ:ʹ<><CAB9><EFBFBD><EFBFBD>(0~100)
int ccm_perused(void)
{
int ccm_perused(void) {
u32 used = 0;
u32 i;
for(i=0;i<ccm_memtblsize;i++)
{
if(ccm_mallco_dev.memmap[i])used++;
for (i = 0; i < ccm_memtblsize; i++) {
if (ccm_mallco_dev.memmap[i])
used++;
}
return (used * 10000) / (ccm_memtblsize);
}
// <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>(<28>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>)
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// size:Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С(<28>ֽ<EFBFBD>)
// <20><><EFBFBD><EFBFBD>ֵ:0XFFFFFFFF,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<3B><><EFBFBD><EFBFBD>,<2C>ڴ<EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
static u32 ccm_malloc(u32 size)
{
static u32 ccm_malloc(u32 size) {
signed long offset = 0;
u16 nmemb; // <20><>Ҫ<EFBFBD><D2AA><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
u16 cmemb = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
u32 i;
// if(!mallco_dev.memrdy)mallco_dev.init();//δ<><CEB4>ʼ<EFBFBD><CABC>,<2C><>ִ<EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
if(size==0)return 0XFFFFFFFF;//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
if (size == 0)
return 0XFFFFFFFF; // <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
nmemb = size / ccm_memblksize; // <20><>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>
if(size%ccm_memblksize)nmemb++;
if (size % ccm_memblksize)
nmemb++;
for (offset = ccm_memtblsize - 1; offset >= 0; offset--) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(!ccm_mallco_dev.memmap[offset])cmemb++;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else cmemb=0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (!ccm_mallco_dev.memmap[offset])
cmemb++; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else
cmemb = 0; // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (cmemb == nmemb) // <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nmemb<6D><62><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
{
for (i = 0; i < nmemb; i++) // <20><>ע<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ǿ<EFBFBD>
@@ -428,8 +379,7 @@ static u32 ccm_malloc(u32 size)
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// offset:<3A>ڴ<EFBFBD><DAB4><EFBFBD>ַƫ<D6B7><C6AB>
// <20><><EFBFBD><EFBFBD>ֵ:0,<2C>ͷųɹ<C5B3>;1,<2C>ͷ<EFBFBD>ʧ<EFBFBD><CAA7>;
static u8 ccm_free(u32 offset)
{
static u8 ccm_free(u32 offset) {
int i;
if (!ccm_mallco_dev.memrdy) // δ<><CEB4>ʼ<EFBFBD><CABC>,<2C><>ִ<EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
{
@@ -445,35 +395,27 @@ static u8 ccm_free(u32 offset)
ccm_mallco_dev.memmap[index + i] = 0;
}
return 0;
}else return 2;//ƫ<>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>.
} else
return 2; // ƫ<>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>.
}
#endif
// <20>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
// ptr:<3A>ڴ<EFBFBD><DAB4>׵<EFBFBD>ַ
void myfree(void *ptr)
{
void myfree(void *ptr) {
IRQ_DISABLE();
u32 free_addr = (u32)ptr;
u32 offset;
if(ptr==NULL)
{
if (ptr == NULL) {
IRQ_ENABLE();
return; // <20><>ַΪ0.
}
else if ((free_addr&0xf0000000)==0x20000000)//sram
} else if ((free_addr & 0xf0000000) == 0x20000000) // sram
{
offset = (u32)ptr - (u32)mallco_dev.membase;
mem_free(offset); // <20>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
}
else
{
} else {
offset = (u32)ptr - (u32)exmallco_dev.membase;
exmem_free(offset); // <20>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
}
@@ -481,13 +423,11 @@ void myfree(void *ptr)
IRQ_ENABLE();
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
// <20><><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>䣬ʧ<E4A3AC>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
// size:<3A>ڴ<EFBFBD><DAB4><EFBFBD>С(<28>ֽ<EFBFBD>)
// <20><><EFBFBD><EFBFBD>ֵ:<3A><><EFBFBD><EFBFBD><E4B5BD><EFBFBD>ڴ<EFBFBD><DAB4>׵<EFBFBD>ַ.
void *mymalloc(size_t size)
{
void *mymalloc(size_t size) {
IRQ_DISABLE();
u32 offset;
void *ret_addr = NULL;
@@ -495,15 +435,11 @@ void *mymalloc(size_t size)
offset = 0XFFFFFFFF;
else
offset = mem_malloc(size);
if(offset!=0XFFFFFFFF)
{
if (offset != 0XFFFFFFFF) {
ret_addr = (void *)((u32)mallco_dev.membase + offset);
}
else
{
} else {
offset = exmem_malloc(size);
if (offset!=0XFFFFFFFF)
{
if (offset != 0XFFFFFFFF) {
ret_addr = (void *)((u32)exmallco_dev.membase + offset);
}
}
@@ -512,27 +448,20 @@ void *mymalloc(size_t size)
return ret_addr;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
// <20><><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>䣬ʧ<E4A3AC>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
// size:<3A>ڴ<EFBFBD><DAB4><EFBFBD>С(<28>ֽ<EFBFBD>)
// <20><><EFBFBD><EFBFBD>ֵ:<3A><><EFBFBD><EFBFBD><E4B5BD><EFBFBD>ڴ<EFBFBD><DAB4>׵<EFBFBD>ַ.
void *mymalloc_fast(u32 size)
{
void *mymalloc_fast(u32 size) {
IRQ_DISABLE();
u32 offset;
void *ret_addr = NULL;
offset = mem_malloc(size);
if(offset!=0XFFFFFFFF)
{
if (offset != 0XFFFFFFFF) {
ret_addr = (void *)((u32)mallco_dev.membase + offset);
}
else
{
} else {
offset = exmem_malloc(size);
if (offset!=0XFFFFFFFF)
{
if (offset != 0XFFFFFFFF) {
ret_addr = (void *)((u32)exmallco_dev.membase + offset);
}
}
@@ -541,49 +470,37 @@ void *mymalloc_fast(u32 size)
return ret_addr;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD>ڴ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
// <20><><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>䣬ʧ<E4A3AC>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
// size:<3A>ڴ<EFBFBD><DAB4><EFBFBD>С(<28>ֽ<EFBFBD>)
// <20><><EFBFBD><EFBFBD>ֵ:<3A><><EFBFBD><EFBFBD><E4B5BD><EFBFBD>ڴ<EFBFBD><DAB4>׵<EFBFBD>ַ.
void *mymalloc_exm(u32 size)
{
void *mymalloc_exm(u32 size) {
IRQ_DISABLE();
u32 offset;
void *ret_addr = NULL;
offset = exmem_malloc(size);
if (offset!=0XFFFFFFFF)
{
if (offset != 0XFFFFFFFF) {
ret_addr = (void *)((u32)exmallco_dev.membase + offset);
}
IRQ_ENABLE();
return ret_addr;
}
#if USE_CCM == 1
// <20>ͷ<EFBFBD>CCM<43>ڴ<EFBFBD>
void myfree_ccm(void *ptr)
{
void myfree_ccm(void *ptr) {
IRQ_DISABLE();
u32 free_addr = (u32)ptr;
u32 offset;
if(ptr==NULL)
{
if (ptr == NULL) {
IRQ_ENABLE();
return; // <20><>ַΪ0.
}
else if ((free_addr&0xf0000000)==0x10000000)//sram
} else if ((free_addr & 0xf0000000) == 0x10000000) // sram
{
offset = (u32)ptr - (u32)ccm_mallco_dev.membase;
ccm_free(offset); // <20>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
}
else
{
} else {
offset = (u32)ptr - (u32)exmallco_dev.membase;
exmem_free(offset); // <20>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
}
@@ -591,24 +508,17 @@ void myfree_ccm(void *ptr)
IRQ_ENABLE();
}
// <20><><EFBFBD><EFBFBD>CCM<43>ڴ<EFBFBD>
void *mymalloc_ccm(u32 size)
{
void *mymalloc_ccm(u32 size) {
IRQ_DISABLE();
u32 offset;
void *ret_addr = NULL;
offset = ccm_malloc(size);
if(offset!=0XFFFFFFFF)
{
if (offset != 0XFFFFFFFF) {
ret_addr = (void *)((u32)ccm_mallco_dev.membase + offset);
}
else
{
} else {
offset = exmem_malloc(size);
if (offset!=0XFFFFFFFF)
{
if (offset != 0XFFFFFFFF) {
ret_addr = (void *)((u32)exmallco_dev.membase + offset);
}
}
@@ -616,26 +526,19 @@ void *mymalloc_ccm(u32 size)
return ret_addr;
}
#endif
// <20><><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ڴ<EFBFBD>(<28>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>)
// memx:<3A><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
//*ptr:<3A><><EFBFBD>ڴ<EFBFBD><DAB4>׵<EFBFBD>ַ
// size:Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С(<28>ֽ<EFBFBD>)
// <20><><EFBFBD><EFBFBD>ֵ:<3A>·<EFBFBD><C2B7><EFBFBD><E4B5BD><EFBFBD>ڴ<EFBFBD><DAB4>׵<EFBFBD>ַ.
void *myrealloc(void *ptr,u32 size)
{
void *myrealloc(void *ptr, u32 size) {
IRQ_DISABLE();
void *ret_addr;
ret_addr = mymalloc_exm(size);
if(ret_addr!=NULL)
{
if(ptr!=NULL)
{
if (ret_addr != NULL) {
if (ptr != NULL) {
mymemcpy(ret_addr, ptr, size);
myfree(ptr);
}
@@ -645,57 +548,21 @@ void *myrealloc(void *ptr,u32 size)
return ret_addr;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ沢<DAB4><E6B2A2><EFBFBD><EFBFBD>
void *mycalloc (u32 size)
{
void *mycalloc(u32 size) {
void *ptr = mymalloc(size);
if (ptr) mymemset(ptr,0,size);
if (ptr)
mymemset(ptr, 0, size);
return ptr;
}
////////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýӿ<C3BD>
void *malloc(size_t size) { return mymalloc(size); }
void free(void *ptr) { myfree(ptr); }
void *realloc(void *ptr, size_t size) { return myrealloc(ptr, size); }
void *malloc(size_t size)
{
return mymalloc(size);
}
void free (void *ptr)
{
myfree(ptr);
}
void *realloc(void *ptr,size_t size)
{
return myrealloc(ptr,size);
}
void *calloc(size_t nmemb, size_t size)
{
return mycalloc(nmemb*size);
}
void *calloc(size_t nmemb, size_t size) { return mycalloc(nmemb * size); }

View File

@@ -36,7 +36,9 @@
#include <string.h>
#include HTTPD_FSDATA_FILE
// #include HTTPD_FSDATA_FILE
#include "fsdata.txt"
/*-----------------------------------------------------------------------------------*/

View File

@@ -52,6 +52,8 @@
#include <string.h>
#include <stdio.h>
#if 0
/*
* Initialize the network interface device
*
@@ -213,6 +215,8 @@ int lwip_system_init(void)
}
INIT_PREV_EXPORT(lwip_system_init);
#endif
void sys_init(void)
{
/* nothing on RT-Thread porting */
@@ -220,7 +224,7 @@ void sys_init(void)
void lwip_sys_init(void)
{
lwip_system_init();
// lwip_system_init();
}
/*

View File

@@ -18,7 +18,7 @@
struct eth_device
{
/* inherit from rt_device */
struct rt_device parent;
// struct rt_device parent;
/* network interface for lwip */
struct netif *netif;
@@ -29,8 +29,8 @@ struct eth_device
rt_uint8_t link_status;
/* eth device interface */
struct pbuf* (*eth_rx)(rt_device_t dev);
rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p);
// struct pbuf* (*eth_rx)(rt_device_t dev);
// rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p);
};
rt_err_t eth_device_ready(struct eth_device* dev);

View File

@@ -77,14 +77,18 @@ INC=[
'-ISrc/zlib',
'-ISrc/NES',
# '-ISrc/TinyUSB/lib/rt-thread',
'-ISrc/TinyUSB/examples/device/cdc_dual_ports/src',
'-ISrc/TinyUSB/src/class/cdc',
'-ISrc/TinyUSB/examples/device/net_lwip_webserver/src',
'-ISrc/TinyUSB/src/class/net',
'-ISrc/TinyUSB/src/common',
'-ISrc/TinyUSB/src/device',
'-ISrc/TinyUSB/src/portable/synopsys/dwc2',
'-ISrc/TinyUSB/src',
'-ISrc/TinyUSB/src/osal',
'-ISrc/TinyUSB/hw',
'-ISrc/TinyUSB/lib/networking',
'-ISrc/rt-thread/components/net/lwip-2.1.0/src/include',
'-ISrc/rt-thread/components/net/lwip-2.1.0/src/arch/include'
]
SRC_DIR=[
@@ -102,10 +106,14 @@ SRC_DIR=[
'Src/rt-thread/src',
# 'Src/sqlite3',
'Src/TinyUSB/src/class/cdc',
'Src/TinyUSB/src/class/net',
'Src/TinyUSB/src/common',
'Src/TinyUSB/src/device',
'Src/TinyUSB/src/portable/synopsys/dwc2',
'Src/TinyUSB/lib/networking',
# 'Src/TinyUSB/src',
'Src/rt-thread/components/net/lwip-2.1.0/src',
]
SRC=[
@@ -156,8 +164,9 @@ SRC=[
'Src/NES/nes_mapper.c',
'Src/TinyUSB/src/tusb.c',
'Src/TinyUSB/lib/rt-thread/tusb_rt_thread_port.c',
'Src/TinyUSB/examples/device/cdc_dual_ports/src/usb_descriptors.c',
# 'Src/TinyUSB/lib/rt-thread/tusb_rt_thread_port.c',
'Src/TinyUSB/examples/device/net_lwip_webserver/src/main.c',
'Src/TinyUSB/examples/device/net_lwip_webserver/src/usb_descriptors.c',
'Src/TinyUSB/hw/bsp/board.c'
]