{"action":"created","issue":{"url":"https://api.github.com/repos/wolfSSL/wolfssl/issues/578","repository_url":"https://api.github.com/repos/wolfSSL/wolfssl","labels_url":"https://api.github.com/repos/wolfSSL/wolfssl/issues/578/labels{/name}","comments_url":"https://api.github.com/repos/wolfSSL/wolfssl/issues/578/comments","events_url":"https://api.github.com/repos/wolfSSL/wolfssl/issues/578/events","html_url":"https://github.com/wolfSSL/wolfssl/pull/578","id":178926956,"number":578,"title":"Optimize memory usage for ARM Cortex M and similar embedded systems","user":{"login":"keton","id":2270836,"avatar_url":"https://avatars.githubusercontent.com/u/2270836?v=3","gravatar_id":"","url":"https://api.github.com/users/keton","html_url":"https://github.com/keton","followers_url":"https://api.github.com/users/keton/followers","following_url":"https://api.github.com/users/keton/following{/other_user}","gists_url":"https://api.github.com/users/keton/gists{/gist_id}","starred_url":"https://api.github.com/users/keton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keton/subscriptions","organizations_url":"https://api.github.com/users/keton/orgs","repos_url":"https://api.github.com/users/keton/repos","events_url":"https://api.github.com/users/keton/events{/privacy}","received_events_url":"https://api.github.com/users/keton/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-23T17:03:50Z","updated_at":"2016-09-23T17:04:41Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/wolfSSL/wolfssl/pulls/578","html_url":"https://github.com/wolfSSL/wolfssl/pull/578","diff_url":"https://github.com/wolfSSL/wolfssl/pull/578.diff","patch_url":"https://github.com/wolfSSL/wolfssl/pull/578.patch"},"body":"Proposed change adds `const` modifier to precomputed `ge_precomp` tables in `ge_operations.c`. \r\n\r\nOn embedded systems this forces them to be stored in flash memory instead of RAM. \r\n\r\nBefore patch my demo program for Nordic nRF5x platform used almost 50kb of RAM. After the patch memory usage dropped to 18 kb from which 16 kb is heap and stack space statically allocated by init. \r\n\r\nThis makes a world of difference on embedded systems where RAM is very limited. For example it allows usage of precomputed curve parameters on nRF51 systems which have only 32kb of RAM. \r\n\r\nThe other modification adds minimal configuration profile for Nordic nRF5x system. After defining `WOLFSSL_NRF5x` in the Makefile WolfSSL compiles and runs without issues on nRF51-DK and nRF52-DK reference design boards with SDK12.\r\n"},"comment":{"url":"https://api.github.com/repos/wolfSSL/wolfssl/issues/comments/249247687","html_url":"https://github.com/wolfSSL/wolfssl/pull/578#issuecomment-249247687","issue_url":"https://api.github.com/repos/wolfSSL/wolfssl/issues/578","id":249247687,"user":{"login":"wolfSSL-Bot","id":16727446,"avatar_url":"https://avatars.githubusercontent.com/u/16727446?v=3","gravatar_id":"","url":"https://api.github.com/users/wolfSSL-Bot","html_url":"https://github.com/wolfSSL-Bot","followers_url":"https://api.github.com/users/wolfSSL-Bot/followers","following_url":"https://api.github.com/users/wolfSSL-Bot/following{/other_user}","gists_url":"https://api.github.com/users/wolfSSL-Bot/gists{/gist_id}","starred_url":"https://api.github.com/users/wolfSSL-Bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wolfSSL-Bot/subscriptions","organizations_url":"https://api.github.com/users/wolfSSL-Bot/orgs","repos_url":"https://api.github.com/users/wolfSSL-Bot/repos","events_url":"https://api.github.com/users/wolfSSL-Bot/events{/privacy}","received_events_url":"https://api.github.com/users/wolfSSL-Bot/received_events","type":"User","site_admin":false},"created_at":"2016-09-23T17:04:41Z","updated_at":"2016-09-23T17:04:41Z","body":"Can one of the admins verify this patch?"}}
{"actor":{"display_login":"wolfSSL-Bot"}}