您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 >
CodeTEST在Linux环境的使用
作者:网络转载 发布时间:[ 2013/3/11 16:25:28 ] 推荐标签:

举例ct_init():

#define CFG_IMMR      0xff000000

#define CODETEST_PHY_ADDR       0x70000000

#define CODETEST_ATTRIB_VAL     0xfff009f0

int ct_init(void)

{

       extern int fd;

       extern int *ip;

 

       immap_t *immap;

       size_t size,pgsize;

 

       fd = open ("/dev/mem", O_RDWR);

       pgsize = getpagesize();

       size = ((sizeof(immap_t)/pgsize)+1)*pgsize;

 

       ip = (int *) mmap (0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, CFG_IMMR);

       immap = (immap_t *)ip;

       immap -> im_memctl.memc_or2 = CODETEST_ATTRIB_VAL;

       immap -> im_memctl.memc_br2 = CODETEST_PHY_ADDR + 0x001;

       munmap (ip, size);

 

       ip = (int *)mmap (0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, CODETEST_PHY_ADDR);

       amc_ctrl_port_ptr = ip;

       amc_data_port_ptr = (ip + 1);

 

       return 0;

 

       }

        初始化程序ct_init()完成了物理地址到逻辑地址的映射,对于不同的用户环境需要对片选、映射地址进行相应修改。

四、源代码打点编译

        目标环境:嵌入式linux (kernel 2.2.14)

1、修改instrconfig文件

        libctHwic库中的初始化程序ctlib.c完成了物理地址到逻辑地址的映射,这个逻辑地址被赋给amc_ctrl_port_ptr、amc_ctrl_port_ptr,使Probe可以正确接收数据。

        这个逻辑地址的值同样需要被用户程序知道,我们的初始化程序ctlib.c必须先于用户的主程序运行。而在RTOS Linux中不同的用户程序无法实现变量的共用,所以我们采用了软件打点的方法来决这个问题。

        存放在<installation_dir>/instrconfig目录下的打点配置文件为隐藏文件,为了对其进行相应修改,需要让系统显示所有文件。

        根据环境变量AMC_TARGET的值,选择同名文件进行修改。修改的内容主要包括:

        为CodeTEST确定当前环境使用的编译器类型,即令:

AMC_CC=ppc_8xx-gcc

AMC_CXX=ppc_8xx-gcc

在AMC_TAGDEFAULTS中增加-tags-to-ctTag选项,-tags-to-ctTag选项令CodeTEST采用软件方式打点。注释去

#AMC_TAGDEFAULTS=-gnu -no-placement-delete

#                -allocator-call-map=$AMC_HOMElib tosvxworksctvxwrap.map

AMC_TAGDEFAULTS=-gnu

-no-placement-delete

-tags-to-ctTag 

                       -allocator-call-map=$AMC_HOMElib toslinuxctlinuxwrap.map

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd