Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Recently I have been trying to learn about memory testing (specifically RAM) which seems pretty complex so my initial thought is to just use existing open code to get something working. So far I have found http://www.barrgroup.com/Embedded-Sy...y-Test-Suite-C which contains some basic test cases that seem fairly general and looks portable.
I have also quickly scanned github but have not found anything that seems general and reliable. My current requirements are:
1. General Memory Testing C Program.
2. Needs to be built from source so it can run on ARM
Any advice or comments would be greatly appreciated,
Write opposite alternating patterns to all and verify 0xAA
Be careful running this on all RAM of a system, the RAM is used for the system itself. Instead you can check an allocated segment from the heap versus try to test all of RAM. Because testing of RAM is typically done from a ROM based bootloader where total over-write of RAM doesn't matter to the operating program.
Thanks for the information. I was told we would be given a start/stop address range so maybe this would avoid the problem you mentioned where we would not want to test all of RAM. Also, I found a couple tools online that look like they might do the trick. For example, I just found https://github.com/jnavila/memtester which looks like it might be a good tool to use. I am hoping to avoid building my own tool although you make it sound easy.
Do you by chance know/recommend any good quality tools that are light weight and open? Also, do you know of any good learning materials out there on this subject.
I marked your initial reply as helpful. This is not a school assignment. I am not a programmer so I am trying to find the most optimal starting point referring to a good existing tool which is light and easily configurable/modifiable. Anyhow, thanks for your help. My intension is to try to get memtester to work.
The original article which you cited, includes a link for code matching exactly what they talk about in the article here.
It's two files, memtest.c and memtest.h. Best suggestion is that you try to build those on the ARM target and modify them to suite your needs. Note that you will need to write your own main() function because what they've given are the utilities and their article talks about how to employ those, but does not provide a sample main() function.
That second link you cited is also very good, and much more inclusive where they've provided a more full application, they also do more tests, I forgot about walking ones and walking zeros.
Understand that your initial post stated that you were looking at open source, you've been scanning github, and that the two requirements were a "General Memory Testing C Program", and "Need to be build from source so it can run on ARM". So while you state you are not a programmer, be aware that these tacts will take you very much down the exact path of acting as a programmer. If that is not your desire, then best you should do is to search for pre-compiled memory test utilities built for ARM.
Do you need to write diagnostics to validate a product? Or is there a situation on a system where you fear there are problems with the RAM devices?
As usual thanks for your input. I am not a programmer (network/security engineer by trade) I am not afraid to try and understand code and make simple changes as needed. I have decided to put my effort into the github code because it is already ready to go. The team I am helping has tools that are suppose to "some-what automate" the cross-compilation process so at this point my attitude is to understand how that code works "as best as possible", possibly look into trying to modify it "I was originally told a requirement was going to be give the program a start-stop memory address" so I don't think the current program takes a stop address as a command line option, and then somehow try to figure out if the program is working correctly.
As far as why I am doing this, I think it is more to validate a custom-card. Although I do not know all the high level details. How much experience do you have into this kind of work?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.