📄 memtst.c
字号:
/*
V0.1 Initial Release 10/July/2006 RBR
*/
//test memory allocation
#include "msstate_lrwpan.h"
#define MAXLOOPS 100
#define MAXBLKS 100
#define MAXBLKSIZE 256
unsigned char *test_array[MAXBLKS];
void main(void)
{
int i,j,k,size;
unsigned char *ptr;
halInit();
halInitUart();
conPrintROMString("Hello World!\n");
for (i=0;i<MAXBLKS;i++) test_array[i] = NULL;
MemInit();
for (j=0;j<MAXLOOPS;j++) {
//fill up memory
for (i=0;i<MAXBLKS;i++) {
if (!test_array[i]) {
size = halGetRandomByte();
if (!size) size = 1;
ptr = MemAlloc(size);
if (ptr) {
test_array[i] = ptr;
for (k=0;k<size;k++) {
*ptr = (unsigned char) halGetRandomByte();
ptr++;
}
} else {
//memory is full
break;
}
}
} // end for
conPrintROMString("After Memory Alloc\n");
MemDump();
conPrintROMString("After Mem dump\n");
//free half of the memory
for (i=0;i<MAXBLKS;i++) {
if (test_array[i] && (halGetRandomByte()%2)) {
MemFree(test_array[i]);
test_array[i] = NULL;
}
}
conPrintROMString("After Memory Free\n");
MemDump();
}
//before exiting, free all blocks
for (i=0;i<MAXBLKS;i++) {
if (test_array[i]) {
MemFree(test_array[i]);
test_array[i] = NULL;
}
}
conPrintROMString("After free all\n");
MemDump();
}
//Callbacks
LRWPAN_STATUS_ENUM usrRxPacketCallback(void) {return LRWPAN_STATUS_SUCCESS;}
LRWPAN_STATUS_ENUM usrZepRxCallback(void){ return LRWPAN_STATUS_SUCCESS; }
void usrIntCallback(void){}
//called when the slow timer interrupt occurs
#ifdef LRWPAN_ENABLE_SLOW_TIMER
void usrSlowTimerInt(void ) {}
#endif
#ifdef LRWPAN_FFD
BOOL usrJoinVerifyCallback(LADDR *ptr, BYTE capinfo){return TRUE;}
BOOL usrJoinNotifyCallback(LADDR *ptr){return TRUE;}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -