用你的代码写了个测试程序,串口打印动态分配空间里面的内容,看起来没什么问题,不会产生复位:
- unsigned char xdata malloc_mempool [4096];
- void tst_init_mempool (void) {
- xdata int i;
- xdata void *p;
- p = malloc (128);
- for (i = 0; i < 128; i++)
- {
- ((char *) p)[i] = i;
-
- printf("%02bX ", ((char *) p)[i]);
- if((i & 0x0f) == 0x0f)
- printf("\r\n");
- }
- printf("\r\n");
- free (p);
- }
复制代码
- void main(void)
- {
- P0M1 = 0; P0M0 = 0; //设置为准双向口
- P1M1 = 0; P1M0 = 0; //设置为准双向口
- P2M1 = 0; P2M0 = 0; //设置为准双向口
- P3M1 = 0; P3M0 = 0; //设置为准双向口
- P4M1 = 0; P4M0 = 0; //设置为准双向口
- P5M1 = 0; P5M0 = 0; //设置为准双向口
- P6M1 = 0; P6M0 = 0; //设置为准双向口
- P7M1 = 0; P7M0 = 0; //设置为准双向口
-
- UartInit();
-
- printf("mempool test.\r\n");
-
- init_mempool (&malloc_mempool, sizeof(malloc_mempool));
-
- while(1)
- {
- delay_ms(200);
- delay_ms(200);
- delay_ms(200);
- tst_init_mempool();
- }
- }
复制代码
内存管理-串口打印.zip
(9.59 KB, 下载次数: 181)
|