{"action":"created","issue":{"url":"https://api.github.com/repos/lancaster-university/microbit-dal/issues/110","repository_url":"https://api.github.com/repos/lancaster-university/microbit-dal","labels_url":"https://api.github.com/repos/lancaster-university/microbit-dal/issues/110/labels{/name}","comments_url":"https://api.github.com/repos/lancaster-university/microbit-dal/issues/110/comments","events_url":"https://api.github.com/repos/lancaster-university/microbit-dal/issues/110/events","html_url":"https://github.com/lancaster-university/microbit-dal/pull/110","id":143619874,"number":110,"title":"MicroBit: Filesystem","user":{"login":"alexk2k12","id":1737746,"avatar_url":"https://avatars.githubusercontent.com/u/1737746?v=3","gravatar_id":"","url":"https://api.github.com/users/alexk2k12","html_url":"https://github.com/alexk2k12","followers_url":"https://api.github.com/users/alexk2k12/followers","following_url":"https://api.github.com/users/alexk2k12/following{/other_user}","gists_url":"https://api.github.com/users/alexk2k12/gists{/gist_id}","starred_url":"https://api.github.com/users/alexk2k12/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexk2k12/subscriptions","organizations_url":"https://api.github.com/users/alexk2k12/orgs","repos_url":"https://api.github.com/users/alexk2k12/repos","events_url":"https://api.github.com/users/alexk2k12/events{/privacy}","received_events_url":"https://api.github.com/users/alexk2k12/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-03-25T22:49:49Z","updated_at":"2016-04-29T09:54:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/lancaster-university/microbit-dal/pulls/110","html_url":"https://github.com/lancaster-university/microbit-dal/pull/110","diff_url":"https://github.com/lancaster-university/microbit-dal/pull/110.diff","patch_url":"https://github.com/lancaster-university/microbit-dal/pull/110.patch"},"body":"Basic filesystem API for the MicroBit.\r\nTotal code size is 1.8KB\r\nTotal RAM size is 72B - although there is room to reduce this\r\nPOSIX-ish interface: open/close/read/write/seek/unlink. All calls are synchronous.\r\n\r\nDesign of the file system is quite well-documented in MicroBitFile.h, configuration options in MicroBitFile_config.h\r\n\r\nMicroBitFlash.h/cpp is used for read/write to flash. This has some crossover with MicroBitStorage.\r\n\r\nCode still needs some further work (including points listed below), but this should be quite close to the final thing.\r\n\r\n@todo agree on flash location and pages allocated for the filesystem.\r\n@todo add MB_APPEND flag in open().\r\n@todo Interrupt-safety in MicroBitFlash.\r\n@todo Include MicroBitFile instance into uBit object.\r\n\r\nThe KL26z USB interface code will (shortly) be able to read the filesystem from the Nordic chip over SWD, present it as a html/js file when the MicroBit is plugged in, where it can be parsed, and read in a web browser. Code for this is basically finished, will be make a pull request to the DAPLink repo soon.\r\n\r\nHappy to hear comments/feedback, hope you all have a good Easter :-)"},"comment":{"url":"https://api.github.com/repos/lancaster-university/microbit-dal/issues/comments/215673505","html_url":"https://github.com/lancaster-university/microbit-dal/pull/110#issuecomment-215673505","issue_url":"https://api.github.com/repos/lancaster-university/microbit-dal/issues/110","id":215673505,"user":{"login":"jamesadevine","id":4742697,"avatar_url":"https://avatars.githubusercontent.com/u/4742697?v=3","gravatar_id":"","url":"https://api.github.com/users/jamesadevine","html_url":"https://github.com/jamesadevine","followers_url":"https://api.github.com/users/jamesadevine/followers","following_url":"https://api.github.com/users/jamesadevine/following{/other_user}","gists_url":"https://api.github.com/users/jamesadevine/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesadevine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesadevine/subscriptions","organizations_url":"https://api.github.com/users/jamesadevine/orgs","repos_url":"https://api.github.com/users/jamesadevine/repos","events_url":"https://api.github.com/users/jamesadevine/events{/privacy}","received_events_url":"https://api.github.com/users/jamesadevine/received_events","type":"User","site_admin":false},"created_at":"2016-04-29T09:54:49Z","updated_at":"2016-04-29T09:54:49Z","body":"@alexk2k12 @finneyj rebased against master, and applied the patches to key value store used by the storage class. \r\n\r\nDidn't want to remove our history in the other branch, so i've pushed a new branch:\r\n\r\nhttps://github.com/lancaster-university/microbit-dal/tree/microbit-filesystem-rebased\r\n"}}