效率部分
. 避免调试应用程序时需要重启的问题
  原则上,基于Linux环境的stb225开发,应用程序调试应该不需要重启。但是,目前的应用在启动A/V decoding后,关闭重新运行失败。可以跟据失败原因提示屏蔽相关代码,使得调试应用不许重启。
事实上,关闭DirectFBManager.cpp中 ->PlayTo()函数的调用即可。
如果要干净些,还需要关闭ice_audio.cpp和ice_video.cpp中的ICE_AudioStart()和ICE_VideoStart()的执行内容。
 
. Remove HDMI for efficiency
采用Trace版本,nfs方式调试软件时。如果包含HDMI模块,每次开机HDMI的Loading开销较大。不利于开发效率。可以考虑通过prjconfig去掉HDMI。

. App Loading Time
App size很大时,通过nfs Loading时间偏长。如果调试的问题不需要Cabot及相关模块,可以不链接。方法是在apps/appCabotXXX/makefile里面把Link段exclude出去。
比如:ifdef AN_UNDEFINED_VARIABLE
      … … …#Link options
      endif
 
 
. exStbMmio的使用
. prjconfig => Modules 中打开MMIO模块
读命令:exStbMmio 地址
写命令:exStbMmio 地址 值
地址 = 真实地址 – 17c00000
真实地址可以参考 nandboot\aboot\lib_bootloader\hardware.h 中的模块基地址和datasheet 中的偏移地址得到。
比如:exStbMmio 0x2160b4 即读取video denc port control 寄存器
 
 
其它
. 去掉恼人的audio和video trace打印
  trace版本调试中,经常一堆来自audio和video解码时的警告信息,干扰有用的调试信息。简单的关闭方法如下:
stb225/src/open/comps/phStbDbg/src/kmodule/phStbDbg_Module.c
中函数,使tmDbg_Print() 直接返回。
 
. 去掉cabot的交互console
ICEAuroraDVR/src/frost_debug.cpp, FROST_DebugStartConsole(), return directly.
 
. Pin脚信息查找
见Datasheet: 6. Pinning information
因为Pin脚较多,无法像Pnx8302那样在一个页面点清楚,因此用列表方式。
.Ejtag
客户的板子拿来,用我的Ejtag怎么也连不上,检查也没什么问题,多次连接也不行,换Ejtag,发现连上。这好像也是偶尔有的事情。原因暂未发现,可作经验记录下来。

. 设置默认遥控器
phStbRCProtocol.c
把选择的协议默认的opcode list替换成想要的遥控器。
phStbRCProtocolOpcode_t NEC1_NF_list[]

. 增加编译选项到prjmake里面
比如加入exStbSetMode
etc/platform_control_cpu_linux_dev.mk
     exStbMemFree \
+    exStbSetMode \
这样可以运行prjmake control sub=exStbSetMode.lnx