-
Notifications
You must be signed in to change notification settings - Fork 92
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
Dynamic App Loader Helper #387
base: master
Are you sure you want to change the base?
Conversation
examples/tests/app_loader/main.c
Outdated
uint32_t app_size = 0; // variable to store app size | ||
|
||
// Tock Application Binary to be flashed. | ||
const uint8_t app_binary[] = {0x2, 0x0, 0x34, 0x0, 0x0, 0x8, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD7, 0x75, 0x50, 0x6E, |
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.
This application can build for any architecture. How does this data then work?
examples/tests/app_loader/main.c
Outdated
} | ||
|
||
for (uint32_t offset = 0; offset < write_count; offset++) { | ||
memcpy(write_buffer, &app_binary[FLASH_BUFFER_SIZE * offset], FLASH_BUFFER_SIZE); // copy binary to write buffer |
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.
What if app_binary
isn't a multiple of FLASH_BUFFER_SIZE
?
60c2770
to
42b0c51
Compare
this app sends the tab file of an app that needs to be flashed to the capsule. once the app binary is written to flash, the userland app requests kernel to load the app.
… in internal/binaries.c. cleaned up and formatted removed old code removed userspace code from a previous implementation that was giving rise to confusion. added comments to app_loader.h added binaries headers and updated code added binaries in external files to make the app file more readable. Added a new subscribe and callback to support the async setup update readme
added tock-dpl-hello and tock-welcomes-dpl. The first app is a simple c_hello analog that prints a message and terminates on boot. The second app is a helper app that installs tock-dpl-hello on the board during runtime. These apps were made to test the dynamic process loading using hw-ci.
42b0c51
to
f653234
Compare
Can you rebase this on master and
|
…hon tool to tests.
I believe the repo was already rebased on master last time i pushed it.
Done. I also renamed the functions to start with libtock_ to keep in line with the other the new libtock format.
Done |
@@ -0,0 +1,1304 @@ | |||
#include <examples/tests/app_loader/button-press-loading/app_binaries.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.
#include <examples/tests/app_loader/button-press-loading/app_binaries.h> | |
#include "app_binaries.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.
Move these to libtock/kernel
// #include "libtock/tock.h" | ||
|
||
// bool libtock_app_loader_exists(void) { | ||
// syscall_return_t res = command(DRIVER_NUM_APP_LOADER, 0, 0, 0); | ||
// return tock_command_return_novalue_to_returncode(res); | ||
// } |
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.
// #include "libtock/tock.h" | |
// bool libtock_app_loader_exists(void) { | |
// syscall_return_t res = command(DRIVER_NUM_APP_LOADER, 0, 0, 0); | |
// return tock_command_return_novalue_to_returncode(res); | |
// } |
lvgl/lvgl
Outdated
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.
Revert this change.
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.
i did not touch this though?
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.
nvm i see it now
This PR introduces the helper app to validate the kernel's dynamic process loading functionality (tock/tock#3941). The helper app triggers the dynamic process loading with a button press.
This application is located in
/examples/tests/app_loader
and was tested on the nRF52840DK. A previous version of the dynamic process loader was tested with the same application on an Imix board as well.