andreas
unread,
Dec 12, 2013, 4:57:50 PM12/12/13
to cppu…@googlegroups.com
I’d like to join Heath Raftery who wrote a very helpful setup-guide. I made the same excercise for Keil uVision lately, here are my findings:
Toolchain:
uVision MDK-ARM Standart Version: V4.70.0.0
Compiler / Linker Toolchain Version: V5.03.0.24
HAL Library:
Standard Peripheral Library for STM32 Cortex M3 Version V3.5.0
Target:
STM32F103VGI chose to set up a simulator project, most because I like the idea of being able to testdrive code before any HW is present. Furthermore I am testing with the same compiler toolchain as my target will use, and last but not least, code coverage / and performance analysis are available in the same environment. Drawback is, that you are kind of stuck to the keil environment. The editor is not a big revelation, nor is the toolchainsettings and the possibilities to automate the tests. But that is whole different story…
I picked the biggest (memory-wise) available CortexM3 core from ST (STM32F103VG) that has a simulator available, since we are using a core of the same family. Check yourself if Keil provides a simulator for a certain core on the Keil webpage.
- To build the CppUTest library in Keil, I created a new empty Keil project
in the root folder of cpputest and made the following changes: - Target Options->Device Tab->choose «STM32F103VG»
- Target Options->Target Tab->Code Generation->check «Use MicroLib»
- Target Options->Output Tab->Create Executable lib
- Target Options->C/C++ Tab->Define->add «STM32F10X_XL, CPPUTEST_STD_CPP_LIB_DISABLED»
- Target Options->C/C++ Tab->Include Paths->add the CppUTest include directory
- Target Options->C/C++ Tab->Misc Controls->add «—diag_suppress 1300 —diag_suppress 1293 —exceptions»
- Target Options->Linker Tab->Misc Controls->add «—vfemode=off»
- added all *.cpp files in srcCppUTest
- Added srcPlatformsIarUtestPlatform.cpp
- Changed in UtestPlatform.cpp the return value of the function TimeInMillisImplementation from return 1; to return t; which enables timing.
- in UtestPlatform.cpp I declared all the functions except for PlatformSpecificRunTestInASeperateProcess and PlatformSpecificGetWorkingEnvironment as extern «C»
- CppUTest builds with these settings, generating a CppUTest.lib file
- To build the CppUTest tests, I created a new empty Keil project in the
root folder of CppUTest, called it CppUTestTest, and made the following
changes: - Target Options->Device Tab->choose «STM32F103VG»
- Target Options->Target Tab->Code Generation->check «Use MicroLib»
- Target Options->Output Tab->Create Executable (not Lib) check «Debug information»
- Target Options->C/C++ Tab->Define->add «STM32F10X_XL, CPPUTEST_STD_CPP_LIB_DISABLED»
- Target Options->C/C++ Tab->Include Paths->add the CppUTest include directory
- Target Options->C/C++ Tab->Misc Controls->add «—diag_suppress 1300 —diag_suppress 1293 —exceptions»
- Added the include path to the Standard Peripheral Library from STMicroelectronics
- Added the include path to the ARMCC standard implementations
- Target Options->Linker Tab->Misc Controls->add «—vfemode=off»
- Target Options->Debug Tab->check «Use Simulator»
- Target Options->Debug Tab->create a map.ini file that contains the memory regions with the appropriate permissions
- Target Options->Debug Tab->Parameter->add «-REMAP»
- Add all *.cpp and *.c files in tests
- Add the startupfile for the core. In my case it is «startup_stm32f103x_xl.s»
- Add the system init file, in my case «system_stm32f10x.c»
- Add the previously built CppUTest.lib
- change the file AllTests to be able let the tests run in verbose mode
int ac_override = 2;
const char * av_override[] = { «exe», «-v» }; //turn on verbose mode
return RUN_ALL_TESTS(ac_override, av_override); - since Keil does not support semihosting straightaway, you need to retarget some functions. A working retarget sample can be found from this website. Basically what must be done is redefining fputc to redirect the debug output over the ARM ITM interface. Something like this:
#pragma import(__use_no_semihosting_swi)
#define ECHO_FGETC
volatile int ITM_RxBuffer=0x5AA55AA5; /* Buffer to transmit data towards debug system. */struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout;
FILE __stdin;int fputc(int ch, FILE *f)
{
return (ITM_SendChar((uint32_t)ch));
} - Furthermore, a working clock definition is needed. Keil provides an example here.
Here we are. With this I had a working CppUTest environment under Keil. Debug output (Test results) can be listed via «View->serial Windows-> debug (printf) viewer». I am going along this street now, creating a custom testdriven project. If you admins think it would be useful to create a UtestPlatform.cpp for Keil let me know, I am happy to share my files.
Andreas
Erick van Rijk
unread,
Dec 18, 2013, 12:51:51 PM12/18/13
to cppu…@googlegroups.com
Hi Andreas,
Thanks for the setup guide, I’ve been playing around with Eclipse/Keil/CppUTest for a while now and never really got it working right.
I’ll give it another shot!
Erick
Erick van Rijk
unread,
Dec 19, 2013, 5:33:00 PM12/19/13
to cppu…@googlegroups.com
Andreas,
would you mind adding your project files to Github?
Erick
andreas
unread,
Dec 19, 2013, 6:17:38 PM12/19/13
to cppu…@googlegroups.com
Erick,
I can do so for the «UtestPlatform.cpp» file. The «retarget.c» file and the «clock_impl_cm3.c» have keil respectively ARM copyrights, and I don’t feel comfortable loading them on github — but I gave you the links where you can download them. I will try to add the «UtestPlatform.cpp» tomorrow, as I am out of office today. Just wondering, are you having troubles somewhere??
BR Andreas
Erick van Rijk
unread,
Dec 19, 2013, 6:56:51 PM12/19/13
to cppu…@googlegroups.com
Hi Andreas,
I’m having the obvious unresolved symbol errors.
*****
compiling retarget.c…
compiling clock_impl_cm3.c…
linking…
.cpputesttest.axf: Error: L6218E: Undefined symbol time (referred from utestplatform.o).
Not enough information to list image symbols.
Finished: 1 information, 0 warning and 1 error messages.
«.cpputesttest.axf» — 1 Error(s), 0 Warning(s).
*****
So I was hoping to glean any obvious mistakes from your uvproj.
uVision does list the time.h correctly from the C:KeilARMARMCCinclude (any other obvious locations for time?)
Assuming the lib does build correctly (it doesn’t give any errors) I must have made and editing error somewhere. If you can supply the UtestPlatfrom.cpp, it would be helpful. (could be a simple typo).
Thanks
Erick
andreas
unread,
Dec 20, 2013, 11:35:43 AM12/20/13
to cppu…@googlegroups.com
Erick,
I am feeling guilty for this… I forgot to tell about one more change to be made in order to make it work:
In the File UtestPlatform.cpp, change the method TimeStringImplementation as follows:
static const char* TimeStringImplementation()
{
time_t tm = 0;//time(NULL);
return ctime(&tm);
}
I didn’t hunt this down, so I can’t tell you why this is necessary, and right now I have no time to do it, but I should…
Hope this helps!
Andreas
Erick van Rijk
unread,
Dec 20, 2013, 12:03:07 PM12/20/13
to cppu…@googlegroups.com
Great, that resolved the time symbolic issue.
I’m not getting any linker errors any more and after poking at the mem.ini no more warnings there. (could you post your mem.ini contents?)
My next isssue seems to be getting output to debug printf. I got it working properly with the tutorial you provided but I’m not seeing any output, so thats my next hunt for this morning
andreas
unread,
Dec 20, 2013, 12:18:26 PM12/20/13
to cppu…@googlegroups.com
this is the map.ini that I am using so far — although I am not sure if it is complete…
MAP 0x00000000, 0x000FFFFF READ EXEC WRITE // ALIASED FLASH
MAP 0x08000000, 0x080FFFFF READ EXEC // FLASH MEM
MAP 0x20000000, 0x20017FFF READ EXEC WRITE // SRAM
MAP 0x1044EBC0, 0x1044FFFF EXEC READ // unclear
MAP 0x1FFFE000, 0x1FFFF7FF READ EXEC WRITE
MAP 0x20018000, 0x3FFFFFFF READ WRITE
MAP 0x40000000, 0x400003FF READ WRITE
MAP 0x40000400, 0x400007FF READ WRITE
MAP 0x40000800, 0x40000BFF READ WRITE
MAP 0x40000C00, 0x40000FFF READ WRITE
MAP 0x40001000, 0x400013FF READ WRITE
MAP 0x40001400, 0x400017FF READ WRITE
MAP 0x40001800, 0x40001BFF READ WRITE
MAP 0x40001C00, 0x40001FFF READ WRITE
MAP 0x40002000, 0x400023FF READ WRITE
MAP 0x40003C00, 0x40003FFF READ WRITE // SPI3
MAP 0x40007000, 0x400073FF READ WRITE
MAP 0x40010000, 0x400103FF READ WRITE // AFIO
MAP 0x40010400, 0x400107FF READ WRITE // EXIT
MAP 0x40010800, 0x40010bFF READ WRITE // GPIOA
MAP 0x40010C00, 0x40010FFF READ WRITE // GPIOB
MAP 0x40011000, 0x400113FF READ WRITE // GPIOC
MAP 0x40011400, 0x400117FF READ WRITE // GPIOD
MAP 0x40011800, 0x40011bFF READ WRITE // GPIOE
MAP 0x40011C00, 0x40011FFF READ WRITE // GPIOF
MAP 0x40012000, 0x400123FF READ WRITE // GPIOG
MAP 0x40012400, 0x400127FF READ WRITE // ADC1
MAP 0x40012800, 0x40012bFF READ WRITE // ADC2
MAP 0x40012C00, 0x40012FFF READ WRITE // TIM1
MAP 0x40013000, 0x400133FF READ WRITE // SPI1
MAP 0x40013400, 0x400137FF READ WRITE // TIM8
MAP 0x40013800, 0x40013bFF READ WRITE // USART1
MAP 0x40013C00, 0x40013FFF READ WRITE // ADC3
MAP 0x40014C00, 0x40014FFF READ WRITE // TIM9
MAP 0x40015000, 0x400153FF READ WRITE // TIM10
MAP 0x40015400, 0x400157FF READ WRITE // TIM11
MAP 0x40018000, 0x400183FF READ WRITE // SDIO
MAP 0x40020000, 0x400203FF READ WRITE // DMA1
MAP 0x40020400, 0x400207FF READ WRITE // DMA1
MAP 0x40021000, 0x400213FF READ WRITE // RCC
MAP 0x40022000, 0x400223FF READ WRITE // FLASH INTERFACES 1&2
MAP 0x40023000, 0x400233FF READ WRITE // CRC
MAP 0x40021000, 0x400213FF READ WRITE
MAP 0x60000000, 0x63FFFFFF READ EXEC WRITE
MAP 0x70000000, 0x73FFFFFF READ EXEC
MAP 0x78000000, 0x78FFFFFF READ EXEC // FSMC BANK 2
BR Andreas
Bas Vodde
unread,
Dec 20, 2013, 1:17:37 PM12/20/13
to cppu…@googlegroups.com
Erick van Rijk
unread,
Dec 20, 2013, 1:17:50 PM12/20/13
to cppu…@googlegroups.com
Ok, that Map.ini file is more extensive that the one I made. Thanks.
Seems that the fputc function is never called in debug. It seems to be stuck in startup_stm32f10x_xl Systick handler.
Did you perhaps modify the standard simulator config for the device target (i.e. R/W memory areas?/ Stack/Heap?)?
andreas
unread,
Dec 20, 2013, 1:30:17 PM12/20/13
to cppu…@googlegroups.com
Hi Bas,
That is something for the coming year — I’ll give it a try and let you know in case I need support…
Cheers,
Andreas
andreas
unread,
Dec 20, 2013, 1:42:25 PM12/20/13
to cppu…@googlegroups.com
Nope, no changes done in the startupfile… BUT, another one I missed in my Docu — cool that you are verifying the stuff Erick:
change line 11 from clock_impl_cm3.c to
#define CPU_MHZ (72*1000000)
Line 36 in the same file to (beware of upper/lower case)
extern __irq void SysTick_Handler(void)
Line 62 in the same file to
static unsigned int overflows = 0;// = systick_overflows;
Hmm — sorry again, hope the is the end of the ladder to success…
Andreas
Erick van Rijk
unread,
Dec 20, 2013, 2:01:49 PM12/20/13
to cppu…@googlegroups.com
No Worries,
its in my own interest to get this working.
Made the changes, but I’m still not receiving any output in the debug window.
Any other changes, you can think of? Or should I send you my files so you can do a diff?
Erick van Rijk
unread,
Dec 20, 2013, 3:12:55 PM12/20/13
to cppu…@googlegroups.com
Narrowed it down a bit more,
The debug run ends up in: BusFault_Handler in the startup_stm32f10x_xl.s again. I’m assuming that there is some read/write error that causes this.
Tracing the code (yay simulator), the calling function is from UtestPlatform.cpp:
char* PlatformSpecificStrCpy(char* s1, const char* s2)
{
return strcpy(s1, s2);
}
s1 = char* 0x18
s2 = char* 0x19
Eventually originating from SimpleString::SimpleString(const char *otherBuffer)
Any idea what’s going on there?
andreas
unread,
Dec 20, 2013, 4:32:26 PM12/20/13
to cppu…@googlegroups.com
Are you trying to write to a memory region that is not declared in your ini file? (check the command window in the debugger. This was in my case the most frequent reason why I would have entered a Busfault…
Andreas
Erick van Rijk
unread,
Dec 20, 2013, 5:11:23 PM12/20/13
to cppu…@googlegroups.com
Actually I progressed a bit after that last email, Increasing the Heap/Stack to 0x0400 / 0x5000 resolved the BusFaults, (used the suggestions of the IAR howto).
So, After the heap increase and removing the MemoryLeakTests from the sources I finally got the debug printf outputs.
I think you are right that my memory allocations are wrong, I looked at the memory map in the STM32F103xF documents and I cannot seem to spot any errors,
Increasing the heap/stack too large will cause it to run over into the 0x2001 8000 (RESERVED) range.
There are not any errors in the command windows (at least not when I don’t push the heap into the RESERVED range.
I do however get the following error when loading the map.ini. Do you get the same error?
*** error 129: MapMem — map size truncated to 128MB
andreas
unread,
Dec 20, 2013, 6:06:14 PM12/20/13
to cppu…@googlegroups.com
Yes I do get the same error — in the map.ini file you need to define chunks of memory that are smaller than these 128MB in order to get rid of this error…
Erick van Rijk
unread,
Dec 20, 2013, 6:13:19 PM12/20/13
to cppu…@googlegroups.com
I actually made a mistake with the previous stack/heap comments.
https://github.com/cpputest/cpputest.github.io/blob/master/stories.markdown
recommends 0x600 and 0x8000. 0x500 abd 0x5000 are for normal use (ie
not running the test suite).
So without the memory leak tests: Errors (3 failures, 264 tests, 251 ran, 443 checks, 13 ignored, 0 filtered out, 140 ms).
So
it completes the tests. One thing surprises me that it ends up in the
hard-fault handler after completion? Is this expected behavior form
CortexM3?
3 tests seem to fail, I’ll figure them out later. When I add back the MemoryLeakTests it indeed generates an access error:
*** error 65: access violation at 0xF019A814 : no ‘read’ permission
But the 0xF range is 512-Mbyte block 7 Cortex-M3’s internal peripherals. It shouldn’t be going here anyway.
If I’m correct you do include the MemoryLeakTests to your project?
Erick van Rijk
unread,
Jan 6, 2014, 4:11:33 PM1/6/14
to cppu…@googlegroups.com
andreas
unread,
Jan 9, 2014, 2:23:28 PM1/9/14
to cppu…@googlegroups.com
Erick,
Happy new Year
First I’ll clarify the Memleak quest. Nope I’ve excluded the MemleackTests for now. I didn’t hunt it down yet but it does not work here either!
I guess your question regarding NaN points to the same direction. I suppose you are having troubles with all the TESTS that concern double handling. But again, I excluded the tests for now, in order to get back to my project and get ahead there.
Erick van Rijk
unread,
Jan 9, 2014, 2:42:29 PM1/9/14
to cppu…@googlegroups.com
Ah ok, at least it means we have the same issues.
Have you looked into what the minimal requirements are to run CPPUTest in your own projects? I haven’t even started in implementing that yet.
I’m interested in what a minimalist lib (but still functional) would look like (requirements, not the bits :P)
Erick
Bas Vodde
unread,
Jan 11, 2014, 10:40:55 AM1/11/14
to cppu…@googlegroups.com
Hi Erick,
On 9 Jan, 2014, at 6:42 pm, Erick van Rijk <erick….@gmail.com> wrote:
> Ah ok, at least it means we have the same issues.
>
> Have you looked into what the minimal requirements are to run CPPUTest in your own projects? I haven’t even started in implementing that yet.
> I’m interested in what a minimalist lib (but still functional) would look like (requirements, not the bits :P)
I’m not sure what the minimal requirements are, but usually most compilers that have some sort of C++ support will do. I’ve ones had a C-only compiler, that didn’t work
Bas
Erick van Rijk
unread,
Jan 21, 2014, 5:00:21 PM1/21/14
to cppu…@googlegroups.com
Hi Bas,
I actually mean hardware requirements (since we are testing on embedded devices).
So stuff like Heap/Stack/code/ram size are important.
Erick
A. Robert S.
unread,
Jan 21, 2014, 10:00:33 PM1/21/14
to cppu…@googlegroups.com
Erick,
I used CppUTest with TI’s TMS320F2335. I got everything to work, eventually. But I could not get the compiler to produce NaN. I tried many ways to force it, but no luck. So I ended up with three failing tests (the ones that do tests related to NaN). All other tests related to DOUBLE should pass, though.
Robert
On Thursday, January 9, 2014 11:23:28 AM UTC+1, andreas wrote:
Erick van Rijk
unread,
Jan 22, 2014, 1:47:19 PM1/22/14
to cppu…@googlegroups.com
Hi Robert,
I suspect that most ARM system doens’t really support the concept of NaN (see my post previously).
If you got the memtest working, I should give that another look when I get the time. Any suggestions what you changed to get it working?
Erick
A. Robert S.
unread,
Jan 22, 2014, 9:14:41 PM1/22/14
to cppu…@googlegroups.com
Well… I re-read the entire thread and, apart from the general memory-related problems, I can’t really tell what went wrong specifically with your memory leak tests?
Could you run one of those tests with the -nTEST_NAME option, so it will run only one test? (there is an example of how to hardcode command line options in the cl2000 project folder, assuming your embedded target doesn’t take any).
Robert
Bas Vodde
unread,
Jan 26, 2014, 11:27:21 AM1/26/14
to cppu…@googlegroups.com
Hi Erick,
Ah ok. I actually don’t know. We’ve only ones had someone who said CppUTest didn’t fit, but I believe that was incorrect in retrospect.
So, I’m not quite sure how much is needed, we’ve not been hitting the limit of most people it seems… (or they gave up :P)
Bas
Erick van Rijk
unread,
Jan 29, 2014, 12:19:14 PM1/29/14
to cppu…@googlegroups.com
If I find some time I’ll need to take a look at it. CppUTest seems useful, but depending on the requirements it might be just to big for practical implementations for embedded arm devices. (ie Cortex etc).
If I do i’ll let you guys now.
Erick
A. Robert S.
unread,
Jan 29, 2014, 4:02:00 PM1/29/14
to cppu…@googlegroups.com
Hi Erick,
Most of us actually do testing with CppUTest off-target. I believe this helps with writing platform-independent code. Of course, that leaves out code that depends directly on hardware functions. Some of this can be tested with plain C tests. But there is a point where you also need to stimulate the hardware in some way or other. At work, very expensive test-debugging environments (hard- and software) are used for this. Privately, I haven’t found a good way to deal with testing that kind of code. So I try to move as much functionality as I can into software modules (that can be tested off-target), and the rest is tested manually. I find this is a good discipline — a leap year calculation has no business in the low-level clock driver, for instance. It can live in a library, which can be tested.
There is a place for running CppUTest tests on target, but this is expensive in terms of time, both for development and actually running the tests.
Low-level device driver code often sets or gets hardware registers, or single bits thereof. The most common source of error would be working with the wrong register or the wrong bit (misunderstanding the devices documentation, for example). Theoretically, I could test code like that by substituting all those registers with memory locations. This would be relatively easy, even without CppUTest. But what would be the point? If I got something wrong, then my test will pass (because I constructed it with my faulty understanding), and my code will still fail on the actual device. Conversely, my (faulty) test might fail, but the code would actually run fine on the real device. Therefore, privately, I don’t do these kinds of tests, as I don’t have the kind of equipment to support this.
All the best,
Robert
Erick van Rijk
unread,
Feb 14, 2014, 1:27:33 PM2/14/14
to cppu…@googlegroups.com
Hi Robert,
I do understand that the practice of off-target code is useful. But like you mentioned mockups of a hardware level items ADC/pwm/other nasty ARM stuff, is costly to write. Keil actually has this internally in their simulator, hence the interest in running «on-target» either on actual hardware or simulator.
On larger note, I’m also interested in running CppUTest as a CI check in Atlassian Bamboo. Which is a different beast altogether. Basically I’m trying to wrap my head around if CppUTest is useful for production work.
As I go along i’m still learning TDD and to best way of using it. There is a lot of resistance here (office) and If I want to make a proper introduction it will need to work well.
We will see how far I get with TDD/CppUTest.
Erick
Stefan
unread,
Oct 28, 2014, 6:07:00 PM10/28/14
to cppu…@googlegroups.com
Hi,
thank you all for positing your helpful inputs. I have managed to get CPPUTest running.
My problem is that I need to get it running without using microlib.
has anyone managed to to this? I get following error:
Error: L6200E: Symbol __stdout multiply defined (by stdio_streams.o and retarget.o)
thanks for your help
Best Regards
Stefan
Vitaliy Bortsov
unread,
Oct 29, 2014, 6:27:22 AM10/29/14
to cppu…@googlegroups.com
CppUTest at github have working ARM C/C++ compiler port. Look at README_InstallCppUTest.txt
I write startup files to ARM7 and Cortex-M3 targets, look at platforms_startup/armcc directory. Also have look at platforms_examples/armcc too.
вторник, 28 октября 2014 г., 20:07:00 UTC+5 пользователь Stefan написал:
Stefan
unread,
Oct 29, 2014, 6:44:06 PM10/29/14
to cppu…@googlegroups.com
Hi Vitaliy,
thany you for your hints.
I have found the problem. In order to us it without microlib the UtestPlatform.cpp file in the ARMCC platform specific folder has to be modified.
In the function PlatformSpecificFOpen => replaced with return 0;
In the function PlatformSpecificFPuts => empty function
In the function PlatformSpecificFClose => empty function
I guess they could also be handled in the retarget.c file, but this is not the case
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka11357.html
then there was an other problem with the clock. This fixed it for me:
In the function TimeInMillisImplementation() => clock_t t = 0;
So far it seems to work for me. As other already mentioned STACK and HEAP have to be increased. 0x600/0x8000 works for me.
Best Regards
Stefan
Vitaliy Bortsov
unread,
Oct 29, 2014, 7:44:47 PM10/29/14
to cppu…@googlegroups.com
Vitaliy Bortsov
unread,
Oct 29, 2014, 7:56:24 PM10/29/14
to cppu…@googlegroups.com
Stefan
unread,
Oct 30, 2014, 5:21:30 PM10/30/14
to cppu…@googlegroups.com
Hi Vitaliy,
thank you for the clarification. I will try to change this.
Regards
Stefan
ALSTON NEIL Gama
unread,
Feb 17, 2015, 1:24:02 PM2/17/15
to cppu…@googlegroups.com
Hi Andreas,
I have been searching for an unit tetsing framework to intergrate with Keil uVision for testing. I found Unity and its working with Keil. But i wanted something to go with CPP. I will try something that you have tried here.
I need a favour from you. I am not able to find a document listing all avalibale frameworks. In case if you have any pointers would really helpful.
Thanks in advance.
Regards,
Alston Gama
On Thursday, December 12, 2013 at 6:27:50 PM UTC+5:30, andreas wrote:
I’d like to join Heath Raftery who wrote a very helpful setup-guide. I made the same excercise for Keil uVision lately, here are my findings:
Toolchain:
uVision MDK-ARM Standart Version: V4.70.0.0
Compiler / Linker Toolchain Version: V5.03.0.24HAL Library:
Standard Peripheral Library for STM32 Cortex M3 Version V3.5.0Target:
STM32F103VGI chose to set up a simulator project, most because I like the idea of being able to testdrive code before any HW is present. Furthermore I am testing with the same compiler toolchain as my target will use, and last but not least, code coverage / and performance analysis are available in the same environment. Drawback is, that you are kind of stuck to the keil environment. The editor is not a big revelation, nor is the toolchainsettings and the possibilities to automate the tests. But that is whole different story…
I picked the biggest (memory-wise) available CortexM3 core from ST (STM32F103VG) that has a simulator available, since we are using a core of the same family. Check yourself if Keil provides a simulator for a certain core on the Keil webpage.
- To build the CppUTest library in Keil, I created a new empty Keil project
in the root folder of cpputest and made the following changes:
- Target Options->Device Tab->choose «STM32F103VG»
- Target Options->Target Tab->Code Generation->check «Use MicroLib»
- Target Options->Output Tab->Create Executable lib
- Target Options->C/C++ Tab->Define->add «STM32F10X_XL, CPPUTEST_STD_CPP_LIB_DISABLED»
- Target Options->C/C++ Tab->Include Paths->add the CppUTest include directory
- Target Options->C/C++ Tab->Misc Controls->add «—diag_suppress 1300 —diag_suppress 1293 —exceptions»
- Target Options->Linker Tab->Misc Controls->add «—vfemode=off»
- added all *.cpp files in srcCppUTest
- Added srcPlatformsIarUtestPlatform.cpp
- Changed in UtestPlatform.cpp the return value of the function TimeInMillisImplementation from return 1; to return t; which enables timing.
- in UtestPlatform.cpp I declared all the functions except for PlatformSpecificRunTestInASeperateProcess and PlatformSpecificGetWorkingEnvironment as extern «C»
- CppUTest builds with these settings, generating a CppUTest.lib file
- To build the CppUTest tests, I created a new empty Keil project in the
root folder of CppUTest, called it CppUTestTest, and made the following
changes:
- Target Options->Device Tab->choose «STM32F103VG»
- Target Options->Target Tab->Code Generation->check «Use MicroLib»
- Target Options->Output Tab->Create Executable (not Lib) check «Debug information»
- Target Options->C/C++ Tab->Define->add «STM32F10X_XL, CPPUTEST_STD_CPP_LIB_DISABLED»
- Target Options->C/C++ Tab->Include Paths->add the CppUTest include directory
- Target Options->C/C++ Tab->Misc Controls->add «—diag_suppress 1300 —diag_suppress 1293 —exceptions»
- Added the include path to the Standard Peripheral Library from STMicroelectronics
- Added the include path to the ARMCC standard implementations
- Target Options->Linker Tab->Misc Controls->add «—vfemode=off»
- Target Options->Debug Tab->check «Use Simulator»
- Target Options->Debug Tab->create a map.ini file that contains the memory regions with the appropriate permissions
- Target Options->Debug Tab->Parameter->add «-REMAP»
- Add all *.cpp and *.c files in tests
- Add the startupfile for the core. In my case it is «startup_stm32f103x_xl.s»
- Add the system init file, in my case «system_stm32f10x.c»
- Add the previously built CppUTest.lib
- change the file AllTests to be able let the tests run in verbose mode
int ac_override = 2;
const char * av_override[] = { «exe», «-v» }; //turn on verbose mode
return RUN_ALL_TESTS(ac_override, av_override);- since Keil does not support semihosting straightaway, you need to retarget some functions. A working retarget sample can be found from this website. Basically what must be done is redefining fputc to redirect the debug output over the ARM ITM interface. Something like this:
#pragma import(__use_no_semihosting_swi)
#define ECHO_FGETC
volatile int ITM_RxBuffer=0x5AA55AA5; /* Buffer to transmit data towards debug system. */struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout;
FILE __stdin;int fputc(int ch, FILE *f)
{
return (ITM_SendChar((uint32_t)ch));
}- Furthermore, a working clock definition is needed. Keil provides an example here.
Here we are. With this I had a working CppUTest environment under Keil. Debug output (Test results) can be listed via «View->serial Windows-> debug (printf) viewer». I am going along this street now, creating a custom testdriven project. If you admins think it would be useful to create a UtestPlatform.cpp for Keil let me know, I am happy to share my files.
Andreas
jatin jain
unread,
May 19, 2015, 9:13:21 AM5/19/15
to cppu…@googlegroups.com
hi Andreas,
i was trying to use cpputest the way u told in the above message but i am unable to understand following point
- since Keil does not support semihosting straightaway, you need to retarget some functions. A working retarget sample can be found from this website. Basically what must be done is redefining fputc to redirect the debug output over the ARM ITM interface. Something like this:
#pragma import(__use_no_semihosting_swi)
#define ECHO_FGETC
volatile int ITM_RxBuffer=0x5AA55AA5; /* Buffer to transmit data towards debug system. */struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout;
FILE __stdin;int fputc(int ch, FILE *f)
{
return (ITM_SendChar((uint32_t)ch));
}
in exactly which file do i need to make these changes….?
A. Robert S.
unread,
May 22, 2015, 7:43:20 AM5/22/15
to cppu…@googlegroups.com
The code would go in UtestPlatform.cpp. Have a look at the TI / cl2000 UtestPlatform.cpp. It has code to write all output into a fixed buffer. You should be able to adjust it as described above. It’s a while since I did that one, so I can’t give you details right away, but it should get you going.
Robert
Mat
unread,
Aug 17, 2015, 11:54:44 AM8/17/15
to cpputest
Guillem Coromina
unread,
Jan 3, 2017, 1:57:56 PM1/3/17
to cpputest
Hello everybody and happy New Year,
I know that this post is a bit old but I’ll try to see if there is any reply.
Thanks for the guide Andreas, it has been useful to me.
I have an issue: In UtestPlatform.cpp there is the following function:
static int AtExitImplementation(void(*func)(void))
{
return atexit(func);
As the standard library definition is disabled there is no implementation for atexit.
Did anybody have this issue or is something that has come up during the evolution of the project?
#
|
Обновлено: 08.02.2023
Информация по компьютеру:
1. Материнская плата — gigabyte ga-h77-ds3h
2. Процессор — Intel Core i3-3240 CPU 3,40Ггц
3. Видеокарта — AMD Radeon HD 7750
4. Память — 4 Гб
5. Блок Питания — 600W
6. Операционная система — XP SP3
7. Драйвера материнской платы
8. Драйвера видеокарты — версия 8.982.0.0 дата разработки 27.07.2012
Кирилл
backsunday, в директории с установленной должно быть две папки Cache,одна в главной папке и одна где то в подкаталогах.
удалите обе.
Как вариант можно попробовать полностью удалить из каталога World of Warcraft следующие папки: WTF, Кэш-памяти и Интерфейс.
Клиент игры при этом должен быть полностью выключен.
Если это решит проблему, но вам неудобно играть без модификаций интерфейса, вы можете переустановить их после того как убедитесь, что игра работает исправно.
Если неисправна память,то ,как правило,появляются синие стоп экраны.
Но все же вы можете убедиться в исправности памяти выполнив тест memtest
backsunday
Активный пользователь
Спасибо.
Когда только установил игру, пару раз выкидывало с синим экраном ссылкой на память. Но после того , как обновил драйвера на видеокарту и установил DirectX этого больше не происходило в течении недели уже. Но вот теперь стало с ошибкой просто из игры выкидывать.
Вообщем то это происходит нетак часто , может раз 2-3 часа выкинуть, при том это не происходит в моменты ,когда перегружен компьютер (когда например много игроков рядом и все кастую т какие заклинания которые завязаны с анимацией и должны сильно грузить память и видеокарту), это почти всегда происходит во время полета через локацию, когда вообщем то не должно вроде быть никаких перегрузок.
p.s. оперативная память у меня Kingston DDR-III 2Gb (2 штуки таких)
Кирилл
backsunday
Активный пользователь
Кирилл
1) Воспользуемся горячими клавишами Win+Pause
2) Открываем пункт «Дополнительные параметры системы»
3) Ищем и открываем вкладку «Дополнительно»
4) Ищем кнопку «Параметры» в «Загрузка и восстановление» и щелкаем на нее.
должны стоять галочки,ксающиеся записи дампа.
перейдите в папку WindowsMinidump и упакуйте ее в архив,архив выложите на файлообменник,ссылку сюда.
backsunday
Активный пользователь
попробывал удалить все папочки из игры ,что рекомендовали (КЭШ,WTF, Интерфейс..)
долго не было ошибки потом выдало новую((
This application has encountered a critical error:
Program: D:игрыWorld of WarcraftWoW.exe
ProcessID: 6032
File: d:buildserverwow1workwow-codebrancheswow-patch-5_0_5_b-branchenginesourceblizzardcoreblizzardcoresourcepackagesutilPatch/PTC_Apply_BSDIff.cpp
Line: 152
Requested 4004968 bytes of memory
ссылка на файл с полным отсчетом об ощибке:
Добавлено через 3 минуты 40 секунд
а папки Minidump нет в папке Windows(
галочки в «Загрузка и восстановление» так стоят:
загрузка и восстановление.JPG
Добавлено через 9 минут 40 секунд
При сегодняшней ошибке из игры выкинуло не сразу, сначала исчезло изображение (экран стал черным, секунд 10 точно так было), свернул игру выскочила ошибка
Кирилл
backsunday
Активный пользователь
В Minidump я так понимаю отсчет теперь появится только когда вылезет ошибка с синим экраном? Настройки поменял там.
Сегодня еще меню пуск начало глючить, когда щелкаешь пуск вспылает полностью черное окно и только , когда под водишь курсор к нему начинают проявляться ярлычки.
Мемтест не получилось пока сделать: диска у меня нет ,чтобы записать на нее загрузочный файл, флоппи для дискеток вообще нет, а с флэшки почему то не хочет грузиться, хотя ставил в БИОСе чтобы с нее шла загрузка(
Кирилл
backsunday
Активный пользователь
Вирусы победили). Теперь ждать пока опять с ошибкой выкинет, чтобы понять что это не из-за них ошибки были или что?
Кирилл
хм.
Судя по всему игра должна летать.
1)замерьте напряжение
2)попробуйте понизить настроики игры
3)скажите существуют ли проблемы кроме игры?
3)замерьте температуры
4)погоняйте видеокарту напимер фулмарком
memtest
FurMark
*
температуры можно замерить с помощью
HWMonitor-отображает значения CPUGPUHDD и т.д.
CoreTemp-отображает температуру ядер процессора
GPU-Z-отображает температуру видеокарты
backsunday
Активный пользователь
2) вчера и сегодня играл весь вечер на рекомендованных настройках в игре все нормально было.
3) кроме игры не было ничего вроде
3) температура видеокарты поднималась 46 градусов при нынешних настройках , поднял на 2 пeнкта настройки с высоких -> максимальные -> Ультра(максимальные настройки доступные в игре)температура поднялась до 53 градусов (данные Catalist Control Center)
Добавлено через 2 минуты 24 секунды
Когда были ошибки про которые писал в начале этой темы я играл на Максимальных настройках (то есть те которые чуть ниже Ультра настроек))
Добавлено через 11 минут 21 секунду
процессор одно ядро 34 минимум — 46 максимум
второе 39 минимум — 49 максиммм
Добавлено через 28 минут 6 секунд
Еще одна проблема появилась при загрузке Windows меню Пуск не появляется около 3-4 минут, висит одна заставка и стрелочка мыши =(
Не нашёл куда написать в тех поддержке, будем верить что и тут помогут.
Периодически вылетает игра, в основном в столицах или когда летишь, в этот момент очень сильно проседает фпс и выбивает ошибку с текстом:
Ниже креплю файл из папки Errors
Помогите хоть кто то, а то очень уже кипит от этого!
На всякий случай вот характеристика системы: i5-4570/z87m-hd3/8гб 1600(11-11-11-30)/GTX 750Ti StormX Dual 2гб —- Windows 10 Pro
Прикрепленные файлы
Играйте на самом работоспособном и стабильном русскоязычном WoW сервере без доната игровых ценностей!
например то, как для древней игры не хватает 8 гиг памяти?! На офе на ультрах у меня фпс 130+
И не совсем этот комментарий помогает с вопросом ЧТо делать. Купить ещё 8гб памяти?
Попробуй поиграть на минималках!
Попробуй поиграть на минималках!
Мб мне комп продать и купить калькулятор для игры на минималках?
Мб мне комп продать и купить калькулятор для игры на минималках?
Можно, многие тут на калькуляторах 2400 апали!
Но я, кстати, не шутил, у меня тож так вылетало. Одно время отключил тени и всё стало норм, потом драйвер на видюшку обновился и поставил тени снова — всё норм. Но, опять же, я хз! Потыкай там чё нить с настройками, мб поможет
да я пробовал настройки ковырять и клиент перекачивал. не помогает
я пол года не играл, раньше фпс 100+ был в даларане, сейчас 30+ за счастье.
У меня такая проблема была после установки текстур из дренора(или катаклизма, не помню что в лаунчере предлагает). После удаления оных все заиграло без вылетов.
У меня такая проблема была после установки текстур из дренора(или катаклизма, не помню что в лаунчере предлагает). После удаления оных все заиграло без вылетов.
Когда по даларану две белки и рангаросс бегал — Кореса с 16гб выкинуло с такой ошибкой.
Я не хотел вас обидеть. Просто случайно повезло.
Помогите хоть кто то, а то очень уже кипит от этого!
На всякий случай вот характеристика системы: i5-4570/z87m-hd3/8гб 1600(11-11-11-30)/GTX 750Ti StormX Dual 2гб —- Windows 10 Pro
это проблемка 10й винды, у меня так же вылетает иногда. стояла 7ка, таких проблем вообще не знал.
Проиграл с подливой
кстати, да, большая часть подобных крашей при прогрузке даларана происходит, иногда ещё на бг бывает.
винда не при чём, выбивает и на моей ХР и на восьмёрке. тут уже с самим изенгардом что-то не так, даже текстурки из дренора на других серверах прекрасно себя показывают без всяких крашей.
Столько бреда и не одиного слова по теме. при чем тут ОС или ОЗУ? Все такие мастера. вы бы еще посоветовали проц простирнуть с посудомойке. Была такая проблема, во-первых: мапстер последней версии. Во-вторых: удали картографер. Таким образом я решил свою проблему вылетов с ошибкой .MapMem.cpp. Так же встречал еще несколько таких же ошибок только с другими файлами, но это уже совсем другая история с другими аддонами.
PS: 16гб рамы 3й, вин 8.1 х64
Прикрепленные файлы
Столько бреда и не одиного слова по теме. при чем тут ОС или ОЗУ? Все такие мастера. вы бы еще посоветовали проц простирнуть с посудомойке. Была такая проблема, во-первых: мапстер последней версии. Во-вторых: удали картографер. Таким образом я решил свою проблему вылетов с ошибкой .MapMem.cpp. Так же встречал еще несколько таких же ошибок только с другими файлами, но это уже совсем другая история с другими аддонами.
PS: 16гб рамы 3й, вин 8.1 х64
Когда по даларану две белки и рангаросс бегал — Кореса с 16гб выкинуло с такой ошибкой.
Вылетает ошибка: «недостаточно памяти для обработки команды». Игра вылетает минут через 5-10, без разницы в какой локации нахожусь, но в инстах не вылетает. Спрашивал у ясеня gogle, не нашёл решения.На компе 4 гб озу, в варкрафт играю около 7 лет, никогда не было таких ошибок. Другие игры, такие как wot не вылетают.
А ответ в теме был. Даже оба.
Если приложение постоянно просит выделение дополнительной памяти, то вариантов только два:
- Само приложение или его часть (расширение, плагин. аддон) написано с ошибкой;
- Стороннее воздействие на приложение (инжект в любом виде, драйвер) выполняется некорректно.
Соответственно, и вариантов действий два:
- Тут два действия:
- Поскольку сам WoW на Win7 ни у кого больше не вылетает с memory leak`ом, а повреждение исполняемого файла игры так, чтобы возникла именно утечка памяти (без повреждения функционала) практически невозможно (читай маловероятно), считаем, что подобное действие может вызывать аддон. Их нужно отключить и проверить без них.
- Поскольку используются пользовательские данные, стоит попробовать временно переименовать папки Cache и WTF, после чего попробовать.
- И тут два действия:
- Процесс не всегда выполняет то, что хочет он сам, яркий пример — автологин в игру из лаунчера: используя хуки, WinAPI (read/write-processmemory) и немного ассемблера одно приложение начинает выполнять то, что нужно совершенно другому. по такому же принципу работают и вирусы — в некоторых случаях для скрытия от недо-антивирусов кусок вредоносного недо-кода внедряется в память уже запущенного процесса и уже от его имени выполняется. разумеется, такие недо-обходы пишут недо-носки и, как правило, с ошибками (например, они пытаются внедрятся в D3D-приложение «стандартным» способом). Т.е. нужно проверить компьютер на вирусы/рекламщики, желательно утилитой CureIt и дополнительно скинуть в тему стандартный репорт AVZ;
- Некоторые такие «воздействия» на самом деле полезные, например, любая видеописалка вынуждена инжектится в процесс. Иногда это может вызывать ошибки, соответственно, необходимо закрыть все приложения, которые работают с D3D: захваты экрана, оверлеи говорилок и т.п. после чего попробовать.
Ну, а вот если ничего из вышеперечисленного не помогло, то уже начинаем танцевать с бубном:
- Вспоминаем что делали с компом перед моментом начала вылетов. как правило, конечно, никто ничего не вспомнит.
- Пробуем проверить клиент лаунчером. разумеется, не поможет, но вероятность повреждения уберём;
- Проверяем какой-нибудь любимой DOS-утилитой память. можно заодно и жесткий, если купить 2 литра пива вместо 0,5. крайне маловероятно, но иногда бывает; Обращаю внимание, что пункты 2 и 3 должны идти именно в указанном порядке — и, в случае обнаружения бэда (проверка HDD желательна), нужно снова проверять клиент;
- Танцуем с драйверами: если они недавно обновлялись, то откатываем, если не обновлялись, то обновляем. причем, обновлять нужно всё — ring-0 (или ring-1) он такой. тоже, конечно, маловероятно, но.
- Включаем IDA Pro
P.S.: а вообще, всё сказано (но не показано) у ТСа на скриншоте.
Вылетает ошибка: «недостаточно памяти для обработки команды». Игра вылетает минут через 5-10, без разницы в какой локации нахожусь, но в инстах не вылетает. Спрашивал у ясеня gogle, не нашёл решения.На компе 4 гб озу, в варкрафт играю около 7 лет, никогда не было таких ошибок. Другие игры, такие как wot не вылетают.
Прикрепленные изображения
Играйте на самом работоспособном и стабильном русскоязычном WoW сервере без доната игровых ценностей!
Попробуйте расширить виртуальную память на системном диске
Попробуйте расширить виртуальную память на системном диске
пробывал, улучшило минут на 5, но всё равно со временем вируалку забивает и клиент вылетает.
Попробуй файл подкачки 8 гб сделать
Попробуй файл подкачки 8 гб сделать
как вычитал на одном из форумов: Обычная утечка памяти.. ничего неожиданного. Было на Havok, было на всех версиях Cry Engine.
Сначала всегда будет утекать оперативная память, затем виртуальная память и вылет .
Выставление больших обьемов Виртуальной памяти проблемы не решит. Совсем. Никак. Даже 40+ Gb.
Т.к. игра онлайновая, а модифицирование клиента считается нарушением клиентского соглашения —
проблема может быть исправлена только разработчиками.
P.S. c размером файла подкачки эксперементировал в доль и поперёк, помогало только увеличением времени вылета от 5 до 20 минут, но проблему не решало.
P.S.S последний раз на изе играл в мае, проблем таких не возникало, систему не менял, озу не докидывал, всё родное как было так и ничего не менялось
просто из интереса, попробуй отрубить все аддоны
просто из интереса, попробуй отрубить все аддоны
при чём тут аддоны? с этой сборкой аддонов я играю давно, не обновлял не добавлял/не убовлял
при чём тут аддоны? с этой сборкой аддонов я играю давно, не обновлял не добавлял/не убовлял
Компу сколько лет?
Скорее всего у тебя просто вирус.
Скорее всего у тебя просто вирус.
да ты кэп, вирус нацеленый на wow?
Это, скорее всего, накрывается диск С. Перенеси игру на D и посмотри что будет.
У меня щас тоже часто вылетает, в основном когда лечу из даларана почти 100% краш. Началось вроде после установки win10.
Это, скорее всего, накрывается диск С. Перенеси игру на D и посмотри что будет.
а что так можно было? ты гений.
У меня щас тоже часто вылетает, в основном когда лечу из даларана почти 100% краш. Началось вроде после установки win10.
ну это просто win10, она посути сырая. У меня win7 отключён gogle chrome, и только вовка и вылетает, когда же играю в wot, а он я думаю поджирает не меньше чем вовка, в паралель ещё и по скайпу разговариваю, и в хроме музон играет и всё шито крыто, а тут проказа вылезла. Вот ток почему в цлк 25хм на личе где всё сверкает ни чего не вылетает, вот это странно
а что так можно было? ты гений.
к твоему сведению если один винчестер то без разницы c,d,e,f и тд до бесконечности сколько локальных дисков, винч то один и если накрвывается первый, то остальные не спасут, но нет у меня не накрывается винч.
P.S. проверил всё, винч, вирусы, озу, вирт память добавлял/убавлял, аддоны отключал и тд и тп, варианты просто кончились, в чём может быть проблема
Это, скорее всего, накрывается диск С. Перенеси игру на D и посмотри что будет.
у него как бы стоит на Е диске.
ТС, прогони чекдиском, может он банально натыкается на бэд сектор. У меня такое же окно вылетает при попытке начать запись, если программу открыть позже, чем саму игру. пишет то же самое. похоже, что одна ошибка на все случаи жизни.
к твоему сведению если один винчестер то без разницы c,d,e,f и тд до бесконечности сколько локальных дисков, винч то один и если накрвывается первый, то остальные не спасут, но нет у меня не накрывается винч.
P.S. проверил всё, винч, вирусы, озу, вирт память добавлял/убавлял, аддоны отключал и тд и тп, варианты просто кончились, в чём может быть проблема
Винчестер имеет разделы и кластеры, тут ты немного не прав.
у него как бы стоит на Е диске.
ТС, прогони чекдиском, может он банально натыкается на бэд сектор. У меня такое же окно вылетает при попытке начать запись, если программу открыть позже, чем саму игру. пишет то же самое. похоже, что одна ошибка на все случаи жизни.
Винчестер имеет разделы и кластеры, тут ты немного не прав.
я в курсе, просто не правильно выразился. Попробую прогнать, результат напишу
я в курсе, просто не правильно выразился. Попробую прогнать, результат напишу
прогоняй лучше на не запущенной системе, если умеешь. под PE например..
после прогона перемести вов на другой локальный диск и обратно.
Вылетает ошибка: «недостаточно памяти для обработки команды». Игра вылетает минут через 5-10, без разницы в какой локации нахожусь, но в инстах не вылетает. Спрашивал у ясеня gogle, не нашёл решения.На компе 4 гб озу, в варкрафт играю около 7 лет, никогда не было таких ошибок. Другие игры, такие как wot не вылетают.
А ответ в теме был. Даже оба.
Если приложение постоянно просит выделение дополнительной памяти, то вариантов только два:
- Само приложение или его часть (расширение, плагин. аддон) написано с ошибкой;
- Стороннее воздействие на приложение (инжект в любом виде, драйвер) выполняется некорректно.
Соответственно, и вариантов действий два:
- Тут два действия:
- Поскольку сам WoW на Win7 ни у кого больше не вылетает с memory leak`ом, а повреждение исполняемого файла игры так, чтобы возникла именно утечка памяти (без повреждения функционала) практически невозможно (читай маловероятно), считаем, что подобное действие может вызывать аддон. Их нужно отключить и проверить без них.
- Поскольку используются пользовательские данные, стоит попробовать временно переименовать папки Cache и WTF, после чего попробовать.
- И тут два действия:
- Процесс не всегда выполняет то, что хочет он сам, яркий пример — автологин в игру из лаунчера: используя хуки, WinAPI (read/write-processmemory) и немного ассемблера одно приложение начинает выполнять то, что нужно совершенно другому. по такому же принципу работают и вирусы — в некоторых случаях для скрытия от недо-антивирусов кусок вредоносного недо-кода внедряется в память уже запущенного процесса и уже от его имени выполняется. разумеется, такие недо-обходы пишут недо-носки и, как правило, с ошибками (например, они пытаются внедрятся в D3D-приложение «стандартным» способом). Т.е. нужно проверить компьютер на вирусы/рекламщики, желательно утилитой CureIt и дополнительно скинуть в тему стандартный репорт AVZ;
- Некоторые такие «воздействия» на самом деле полезные, например, любая видеописалка вынуждена инжектится в процесс. Иногда это может вызывать ошибки, соответственно, необходимо закрыть все приложения, которые работают с D3D: захваты экрана, оверлеи говорилок и т.п. после чего попробовать.
Ну, а вот если ничего из вышеперечисленного не помогло, то уже начинаем танцевать с бубном:
- Вспоминаем что делали с компом перед моментом начала вылетов. как правило, конечно, никто ничего не вспомнит.
- Пробуем проверить клиент лаунчером. разумеется, не поможет, но вероятность повреждения уберём;
- Проверяем какой-нибудь любимой DOS-утилитой память. можно заодно и жесткий, если купить 2 литра пива вместо 0,5. крайне маловероятно, но иногда бывает; Обращаю внимание, что пункты 2 и 3 должны идти именно в указанном порядке — и, в случае обнаружения бэда (проверка HDD желательна), нужно снова проверять клиент;
- Танцуем с драйверами: если они недавно обновлялись, то откатываем, если не обновлялись, то обновляем. причем, обновлять нужно всё — ring-0 (или ring-1) он такой. тоже, конечно, маловероятно, но.
- Включаем IDA Pro
Скачала с официального сайта клиент игры, все как положенно, далее запустила клиент он обновился и. при запуске вылетает ошибочка (см. фото) кто сталкивался с такой?
Проблем с оперативкой нет, хард работает так же без ошибок стоит винда 10-я железо для такой игры лучше некуда, в чем причина не пойму.
З. Ы. файл подкачки увеличивала не помогло
игра чистая, только скачанная там никаких дополнений там быть не может
PortalX3 Искусственный Интеллект (249646) Зайди на форум по ссылке, что я дал, и почитай — там написано, что надо сделать. Попробуй так же и проверь
да не помогает это! есть прога для исправнения этих багов! когда-то фиксил, сейчас ищу, найти не могу
Читайте также:
- Сталкер зона поражения 2 системные требования
- Ошибка 6036 call of duty warzone
- Rome 2 total war radious mod как установить
- Как запустить киберпанк на 775 сокет
- Названия машин гта 5 для замены
If you need more details, pls refer below
mapred.map.child.java.opts is for Hadoop 1.x
Those who are using Hadoop 2.x, pls use the below parameters instead
mapreduce.map.java.opts=-Xmx4g # Note: 4 GB
mapreduce.reduce.java.opts=-Xmx4g # Note: 4 GB
Also when you set java.opts, you need to note two important points
1. It has dependency on memory.mb, so always try to set java.opts upto 80% of memory.mb
2. Follow the «—Xmx4g» format for opt but numerical value for memory.mb
mapreduce.map.memory.mb = 5012 # Note: 5 GB
mapreduce.reduce.memory.mb = 5012 # Note: 5 GB
Finally, some organization will not allow you to alter mapred-site.xml directly or via CM. Also we need thease kind of setup only to handle very big tables, so it is not recommanded to alter the configuration only for few tables..so you can do this setup temporarly by following below steps:
1. From HDFS:
HDFS> export HIVE_OPTS=»-hiveconf mapreduce.map.memory.mb=5120 -hiveconf mapreduce.reduce.memory.mb=5120 -hiveconf mapreduce.map.java.opts=-Xmx4g -hiveconf mapreduce.reduce.java.opts=-Xmx4g»
2. From Hive:
hive> set mapreduce.map.memory.mb=5120;
hive> set mapreduce.reduce.memory.mb=5120;
hive> set mapreduce.map.java.opts=-Xmx4g;
hive> set mapreduce.reduce.java.opts=-Xmx4g;
Note: HIVE_OPTS is to handle only HIVE, if you need similar setup for HADOOP then use HADOOP_OPTS
Thanks
Kumar
- Forum
- Input and Assistance
- Support Q&A
- Technical mapmem.cpp crash at random times.
-
Member
Hello there,
I’ve been always having a problem with that error. At random times, mostly on northend, I get this error a lot. I’ve been searching for a solution here and there and found that:
http://forum.warmane.com/showthread.php?t=331321
Although the guy over there had a different error, if I use that program (Large Address Aware) and choose the mapmem.cpp file, will it have the same effect? Will it fix the problem? Or is it another solution regarding this one?
-
Member
It’s the same category of errors.
You can’t use it on that file (you don’t have that .cpp file), you need to use it on your wow.exe.
Cant promise it will fix it completely, but it should appear less often with the LAA fix.
-
Member
I had the same error as you do (mapmem.cpp crash) and it solved my problem, got no errors now, so you should give it a try.
-
Forum Veteran
if I use that program (Large Address Aware) and choose the mapmem.cpp file, will it have the same effect?
Use the Program «Large adress aware» on your WoW file, It fixes memory crashes in wow, a lot of times when your game crash it’s because wow takes up more memory then it’s «allowed» to, «large adress aware» increases the memory WoW can take from 2gb to 4gb (I think thats correct)
Usually when you mod your game a lot (addons, patches etc) it causes crashes in memory because WoW wants to use more then the standard set.
-
Member
Did it, but it seems like nothing for fixed at all :/
-
Member
Hi, I’ve got same problem. Have you handle it?
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
- BB code is On
- Smilies are On
- [IMG] code is On
- [VIDEO] code is On
- HTML code is Off
Forum Rules
All times are GMT. The time now is 11:25 AM.