-
Notifications
You must be signed in to change notification settings - Fork 0
Pj/easier to test #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Use inline functions to keep from repeating code Added a unit test to confirm functions behave as expected fix 2 (minor) bugs
/// Checks the first undecorated byte. | ||
uint16_t mu_StackCount(void) | ||
{ | ||
uint8_t *p = (__brkval == 0 ? (uint8_t *) &__heap_start : __brkval); | ||
|
||
while (*p == STACK_CANARY && (int) p <= SP) | ||
while (*p == STACK_CANARY && p <= (uint8_t *) SP) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixes a type conversion warning. Probably harmless but distracting
// | ||
// Memory addresses | ||
// | ||
namespace MU { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New namespace "MU". It may not really be necessary, but I thought the library might be heading in that direction with mu_StackCount()
and mu_stack_size
. I left those alone to ensure these changes are backwards-compatible.
// | ||
#include <MemoryUsage.h> | ||
|
||
#include <AUnit.h> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note this new MemoryUsageTest.ino sketch depends on the AUnit library as well as MemoryUsage. Only this sketch's tests need AUnit. Legacy code should still work fine.
Oops. This pull request is for merging to |
This is for a backwards-compatible enhancement to the MemoryUsage library.
At this time MemoryUsage is basically a set of macros to collect usage information as text through Serial.print().
I would like to have more direct access to the numerical values. This gives me more flexibility in using the values. With these changes:
(__brkval == 0 ? (int)&__heap_start : (int)__brkval)
to get heap end) is gathered into single (inline) functions. This helps ensure all code using that value will calculate it the same way.This pull request includes Locoduino#4 , so if you want both PRs, you only need to review/approve this one.