@@ -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 0 XFFFFFFFF ; //<2F> <> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD>
if ( size = = 0 )
return 0 XFFFFFFFF ; // <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 0 XFFFFFFFF ; //<2F> <> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD>
if ( size = = 0 )
return 0 XFFFFFFFF ; // <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 0 XFFFFFFFF ; //<2F> <> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD>
if ( size = = 0 )
return 0 XFFFFFFFF ; // <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 = 0 XFFFFFFFF ;
else
offset = mem_malloc ( size ) ;
if ( offset ! = 0 XFFFFFFFF )
{
if ( offset ! = 0 XFFFFFFFF ) {
ret_addr = ( void * ) ( ( u32 ) mallco_dev . membase + offset ) ;
}
else
{
} else {
offset = exmem_malloc ( size ) ;
if ( offset ! = 0 XFFFFFFFF )
{
if ( offset ! = 0 XFFFFFFFF ) {
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 ! = 0 XFFFFFFFF )
{
if ( offset ! = 0 XFFFFFFFF ) {
ret_addr = ( void * ) ( ( u32 ) mallco_dev . membase + offset ) ;
}
else
{
} else {
offset = exmem_malloc ( size ) ;
if ( offset ! = 0 XFFFFFFFF )
{
if ( offset ! = 0 XFFFFFFFF ) {
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 ! = 0 XFFFFFFFF )
{
if ( offset ! = 0 XFFFFFFFF ) {
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 ! = 0 XFFFFFFFF )
{
if ( offset ! = 0 XFFFFFFFF ) {
ret_addr = ( void * ) ( ( u32 ) ccm_mallco_dev . membase + offset ) ;
}
else
{
} else {
offset = exmem_malloc ( size ) ;
if ( offset ! = 0 XFFFFFFFF )
{
if ( offset ! = 0 XFFFFFFFF ) {
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 * m alloc( 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 * c alloc( size_t nmemb , size_t size ) { return mycalloc ( nmemb * size ) ; }