[완료]무한루프 프로그램 실행시 Free Memory가 조금씩 줄더니 No space left on device라고 나오면서 멈춥니다.

king0142의 이미지

임베디드 보드에서 돌리는 프로그램으로
무한루프를 돌려 값을 계속 읽으며 버퍼에 데이터를 저장하고 있다가
약 30초 간격으로 데이터를 플래시로 올리는 작업을 하게 됩니다.
약 30초마다 'cat /proc/meminfo'를 이용하여 메모리 상태를 찍어보니
MemTotal: 30348 kB
MemFree: 724 kB
MemShared: 0 kB
Buffers: 296 kB
Cached: 14480 kB
SwapCached: 0 kB
Active: 24644 kB
Inactive: 3652 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 30348 kB
LowFree: 724 kB
SwapTotal: 0 kB
SwapFree: 0 kB
--------------------------------
MemTotal: 30348 kB
MemFree: 700 kB
MemShared: 0 kB
Buffers: 296 kB
Cached: 14500 kB
SwapCached: 0 kB
Active: 24644 kB
Inactive: 3672 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 30348 kB
LowFree: 700 kB
SwapTotal: 0 kB
SwapFree: 0 kB
---------------------------------
MemTotal: 30348 kB
MemFree: 680 kB
MemShared: 0 kB
Buffers: 296 kB
Cached: 14520 kB
SwapCached: 0 kB
Active: 24644 kB
Inactive: 3692 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 30348 kB
LowFree: 680 kB
SwapTotal: 0 kB
SwapFree: 0 kB
--------------------------------
위에서 볼수 있듯이 차츰차츰 MemFree가 줄어들더니
'file open failed: No space left on device'라는 메시지가 나오며 프로그램이 죽습니다.

원래 이런건가요? 그렇다면 MemFree를 다시 늘리는(메모리를 정리해주는)방법은 없나요?
답변 부탁드립니다.
=====================================================================================
reom님 답변 감사합니다.
그런데 플래시는 8메가 부트와 64메가 확장을 쓰고 있고, 약 50메가 정도가 되면 자동으로 파일을 삭제하여
초과되지 않도록 프로그램 했습니다.
=====================================================================================
bushi님 감사합니다^^
제가 모르는 버그가 있나보네요 찾아보겠습니다.
근데 어렵네요..ㅠㅠ
=====================================================================================
해당 프로그램에서 문제점을 찾지못해서 다른곳을 찾다가 부트로더의 RAM인식과 보드의 어드레스가
잘못되어 있음을 발견하였습니다.
보드의 어드레스를 현재 사용하는 RAM에 맞추어 줬더니 Free Memory가 줄어들다가 필요한 Memory만큼
다시 증가하면서 프로그램이 도는것을 확인 할 수 있었습니다.
아직 프로그램 미비로 완료는 되지 못했지만 위 문제는 해결이 되어 완료하였음을 표기 하였습니다.

reom의 이미지

제 짧은 소견으로는
메모리가 부족한게 아니라 플래쉬가 부족한거 아닌가 싶습니다.
메모리 부족하면 Out of Memory 메시지가 뜨던데요.
음 device open이 fail 한것도 그렇고..

bushi의 이미지

플래시 저장장치 용량이 부족한 것이 맞습니다.
절대적으로.

커널 파일시스템이든 어플리케이션이든, 어딘가에 버그가 있겠지요.

semitare의 이미지

/var

옛날에 참신한 생각으로 살던 자신의 모습을 찾아서

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.