test

本文提供了关于嵌入式系统中内存管理和代码测试的实用建议,包括如何高效利用内存资源,以及如何编写独立的测试代码块来减少对现有模块的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在嵌入式系统使用内存管理单元的几点建议:
1.尽量少用,而不是禁用;
2.能用静态的就不要使用动态的;
3.如果静态内存的使用超出了ROM/FALSH的大小,建议
使用动态分配一大块内存(动态内存分配在堆heap中,一般在RAM/SDRAM上,不站用ROM内存),然后当静态使用.
 
 
[匿名] embeddeds
2006-09-07 16:43:20
根据Heisenberg效应,任何测试手段或多或少都会改变系统运行,所以你在使用工具或自行在代码中加入测试程序时必须要:

1.严格书写测试代码
测试代码也需要严格对待,测试代码本身也需要按编码规范书写,否则你很可能会把大量时间花在排除测试代码本身的错误上,这是不应该的。

2.尽量书写独立的块代码(independent block code),尽量减少对原有模块的干扰,比如尽量使用#ifdef来启闭调式代码

void module_func()
{
unsigned char* ptr;
...

#ifdef __INDEPENDENT_BLOCK_CODE
{
unsigned int var1;
static int var2;

...
}
#endif
}

这方面可以参考
Writing Clean Code-----Microsoft Techiniques
for Developing Bug-free C Programs
《编程精粹--Microsoft 编写优质无错C程序秘诀》


3.尽量减少全局变量的使用,除了开关之外
使用全局变量会引入许多潜在的问题,所以尽量少用,
而且调试代码中使用全局变量会增加对原有代码的干扰,因为
测试代码与原有代码的耦合增加。一个例外就是,测试代码的全局开关变量,因为它们是不可避免的,但也要尽量少用。
比如:
unsigned int g_var;

void module_func()
{
unsigned char* ptr;
...

#ifdef __INDEPENDENT_BLOCK_CODE
{
unsigned int var1;
static int var2;

if(g_nVar>0 && g_nVar-->0)
{/*打印g_nVar次var1和var2*/
printf("var1 %d,var2 %d/n",var1,var2);
}
...
}
#endif
}


3.
 
 
[匿名] embeddeds
2006-09-07 23:32:43
    开发人员间的效率差在哪里?[转博友]

熟练人员经过多年的积累加上自己的CodeSnip的总结,基本不用额外再查找资料。而一般的开发人员在开发过程中会花掉10-20%时间去查找资料。

熟练人员注意代码复用,并且时刻注意重构和抽取公用代码。一般开发人员是代码拷来拷去完成功能。

熟练人员非常注意查找,定位,标签等各种快捷键的使用,定位查找方便快捷,IDE环境也根据习惯定义到最方便状态。

熟练人员编码前先思考清楚整个流程,在头脑或纸张上规划好整个实现方式和方法函数的划分。一般人员想到哪里写到哪里。

熟练人员写了50行以上或更多代码才Debug一两次,一般人员写了几行代码就要Debug多次,完全通过Debug来验证代码正确性。

熟练人员注重代码的质量,单元测试和可维护性,注重各种业务逻辑的验证和边界条件的校验。一般人员只注重简单功能的简单完成。

熟练人员提交测试的代码BUG很少,返工工作量很小。一般开发人员由于自测不完善BUG较多,造成大量的返工工作量。

熟练人员合理分配自己的时间,规划好每天工作任务,开发过程各位专注。一般开发人员一心多用,边开发边聊Q。

熟练人员善于知识的总结和积累,形成自我的知识库和经验库。

熟练人员善于发现问题,分析不足而自我持续改进。一般人员在外力干预侠被动改进。

熟练开发人员开发重点已经专业到对业务的深刻理解,一般开发人员考虑的是开发上编程的语言和工具。

熟练人员善于从各种影响自己开发效率的因素中挤时间,善于使用各种辅助开发工具。而一般人员则不善于这种总结。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值