做通路富集分析的网站/关键词推广系统
- 背景
在通过Web API进行reservation test时,无法准确的得到reserve一个device所用的时间,需要对Chassis的controller进行调试。 - 调试过程
1)首先对当前版本的perforce trunk或dev make sync;
2)更新Chassis中的firmware为ranmdisk版本,需要注意的是,如果此时使用自己编出来的DLL进行调试,应当对package文件的version进行修改,一般nirvana上编出dll和固件后,package中的version会加1,用这个package编出来的dll无法和从nirvana上编出的firmware匹配;
3)修改代码,添加打话或者文件记录等。本次调试中,使用的是文件记录的方法:
for (std::vector<std::string>::const_iterator deviceNameItr = deviceNameVtr.begin();deviceNameItr != deviceNameVtr.end();++deviceNameItr){DeviceInfoMap::const_iterator deviceInfoItr= m_deviceInfoMap.find(*deviceNameItr);if (deviceInfoItr == m_deviceInfoMap.end()){throw nNISLSCSHAREDCMN::InternalError("Could not find device info in map", NIERR_LOCATION);}boost::shared_ptr<IDeviceSubsession> deviceSubsession =_createDeviceSubsession(deviceInfoItr->first, deviceInfoItr->second);int64_t t1 = timer.elapsedTimeMs();if (!m_deviceSubsessionMap.insert(DeviceSubsessionMap::value_type(deviceInfoItr->first, deviceSubsession)).second){throw nNISLSCSHAREDCMN::InternalError("Could not insert device subsession into map", NIERR_LOCATION);}_createScalingSubsession(deviceInfoItr->first, scalingInfoMap);int64_t t2 = timer.elapsedTimeMs();FILE * f = fopen("/var/volatile/tmp/time.txt", "a+");fprintf(f, "devicesubsession time:%d, scalingsubsession time:%d,\n", (int32_t)t1,(int32_t)t2);fclose(f);}
以此来track createDeviceSubsession()和createScalingSubsession的时间,将其记录在Linux target中的tmp目录下,注意目录的路径是/var/volatile/tmp/;通过filezilla可以将文件传回本地读取,不过需要刷新;
4)使用make actualTargets得到编译成.so文件的命令,注意需要在其后添加BUILD_DEPS:=1,否则有可能遇到找不到文件错误
make TARGET:=nislscapi/linuxU/armv7-a/gcc-4.7-oe/release BUILD_DEPS:=1;
将编出的.so文件通过filezilla替换chassis上的。
chassis上的web service也export了一份SLSC driver,以通过webAPI的方式操作SLSC机箱,这个linux下运行的driver API在/usr/lib/libnislscapi.so.19.5.0
5)重启system Webserver: 在putty中输入/etc/init.d/systemWebServer restart,等待重启完成;
6)开始调试。
查看nislsc_config_bundle.mak