INSERT INTO `cache_dynamic_page_cache` VALUES ('response:[languages:language_content]=en:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical0b1f169e4471d730423c454bcbef0301e39eaf65a9c1ebfbddcb8e6967b37eac:[theme]=yaffs:[timezon0STSw3s1CeFyA5PuuBBIYJ36kWDeQMuVodBv7O03Bs','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:19:{i:0;s:26:\"languages:language_content\";i:1;s:28:\"languages:language_interface\";i:2;s:14:\"request_format\";i:3;s:5:\"route\";i:4;s:32:\"route.menu_active_trails:account\";i:5;s:29:\"route.menu_active_trails:main\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:8:\"url.site\";i:14;s:21:\"user.node_grants:view\";i:15;s:16:\"user.permissions\";i:16;s:10:\"user.roles\";i:17;s:20:\"user.roles:anonymous\";i:18;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:73:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:16:\"block_content:25\";i:3;s:16:\"block_content:27\";i:4;s:16:\"block_content:28\";i:5;s:16:\"block_content:29\";i:6;s:16:\"block_content:30\";i:7;s:15:\"block_content:7\";i:8;s:18:\"block_content_view\";i:9;s:10:\"block_view\";i:10;s:32:\"config:block.block.choosingyaffs\";i:11;s:29:\"config:block.block.cookieinfo\";i:12;s:32:\"config:block.block.downloadyaffs\";i:13;s:30:\"config:block.block.footerlegal\";i:14;s:39:\"config:block.block.frontimagehighlight2\";i:15;s:32:\"config:block.block.frontpagehero\";i:16;s:39:\"config:block.block.frontpageprimeryaffs\";i:17;s:33:\"config:block.block.mainnavigation\";i:18;s:35:\"config:block.block.mainnavigation_2\";i:19;s:29:\"config:block.block.searchform\";i:20;s:31:\"config:block.block.sitebranding\";i:21;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:22;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:23;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:24;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:25;s:37:\"config:block.block.yaffs_account_menu\";i:26;s:33:\"config:block.block.yaffs_block_10\";i:27;s:32:\"config:block.block.yaffs_block_5\";i:28;s:32:\"config:block.block.yaffs_block_6\";i:29;s:32:\"config:block.block.yaffs_block_8\";i:30;s:32:\"config:block.block.yaffs_block_9\";i:31;s:36:\"config:block.block.yaffs_breadcrumbs\";i:32;s:32:\"config:block.block.yaffs_content\";i:33;s:29:\"config:block.block.yaffs_help\";i:34;s:36:\"config:block.block.yaffs_local_tasks\";i:35;s:33:\"config:block.block.yaffs_messages\";i:36;s:35:\"config:block.block.yaffs_page_title\";i:37;s:32:\"config:block.block.yaffs_user_21\";i:38;s:31:\"config:block.block.yaffsinspace\";i:39;s:17:\"config:block_list\";i:40;s:24:\"config:color.theme.yaffs\";i:41;s:47:\"config:field.storage.node.field_yaffs_user_logo\";i:42;s:30:\"config:filter.format.full_html\";i:43;s:29:\"config:filter.format.raw_html\";i:44;s:24:\"config:image.style.small\";i:45;s:22:\"config:search.settings\";i:46;s:26:\"config:system.menu.account\";i:47;s:23:\"config:system.menu.main\";i:48;s:18:\"config:system.site\";i:49;s:34:\"config:views.view.yaffs_user_logos\";i:50;s:7:\"file:40\";i:51;s:7:\"file:43\";i:52;s:7:\"file:44\";i:53;s:7:\"file:45\";i:54;s:7:\"file:46\";i:55;s:7:\"file:47\";i:56;s:7:\"file:48\";i:57;s:7:\"media:5\";i:58;s:7:\"media:8\";i:59;s:7:\"media:9\";i:60;s:8:\"node:397\";i:61;s:8:\"node:398\";i:62;s:8:\"node:399\";i:63;s:8:\"node:400\";i:64;s:8:\"node:401\";i:65;s:8:\"node:457\";i:66;s:8:\"node:460\";i:67;s:8:\"node:487\";i:68;s:9:\"node_list\";i:69;s:9:\"node_view\";i:70;s:8:\"rendered\";i:71;s:6:\"user:0\";i:72;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Wed, 24 Jan 2018 15:05:25 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:34419:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"Q6li2PBjzWPLz64aEjFthqILKaz6B26H72bJneYktIrshv6hoD1zjIup5NNhA6NjJNbEgum4Gw\">\n    <title>A Robust Flash File System Since 2002 | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"Q6li2PBjzWPLz64aEjFthqILKaz6B26H72bJneYktIrshv6hoD1zjIup5NNhA6NjJNbEgum4Gw\">\n    <js-placeholder token=\"Q6li2PBjzWPLz64aEjFthqILKaz6B26H72bJneYktIrshv6hoD1zjIup5NNhA6NjJNbEgum4Gw\">\n  </head>\n  <body class=\"fontyourface path-frontpage page-node-type-page navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n    <drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span property=\"schema:name\">A Robust Flash File System Since 2002</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/home\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"A Robust Flash File System Since 2002\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices, avionics, and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.</p>\n<p>&nbsp;</p>\n</div>\n      \n  </div>\n\n</article>\n\n<section id=\"block-yaffsinspace\" class=\"panel yaffs-shout well block block-block-content block-block-content9f676777-54d9-40d2-86dd-174fff14ab1a clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<h3><em>New!</em> Yaffs in space!</h3>\n<p><strong><img alt=\"Tess satellite\" data-entity-type=\"file\" data-entity-uuid=\"f06319f1-b6ac-41e2-a70d-a4c4da605b87\" height=\"246\" src=\"/sites/default/files/inline-images/tess_satellite_0.gif\" width=\"347\" class=\"align-right\" />NASA TESS Mission </strong>This <strong>Transiting Exoplanet Survey Satellite (TESS)</strong> will discover thousands of exoplanets in orbit around the brightest stars in the sky.</p>\n<p>It is a project regularly using our Yaffs File System to store incoming data and preserve it, in the rigours of the space environment, before sending it back to Earth.</p>\n<p>In a two-year survey of the solar neighborhood, TESS will monitor more than 200,000 stars for temporary drops in brightness caused by planetary transits. This first-ever spaceborne all-sky transit survey will identify planets ranging from Earth-sized to gas giants, around a wide range of stellar types and orbital distances. No ground-based survey can achieve this feat.</p>\n<p>Some File Systems are not robust enough to be suitable for such exacting work.<br />\n </p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n        \n                              <div class=\"front_highlight row\">\n              <div class=\"col-sm-4\">\n                    <div class=\"region region-front-highlight-1\">\n    <section id=\"block-choosingyaffs\" class=\"block block-block-content block-block-contentae8f54b9-5315-4995-a49e-c0780f3a88cc clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><a href=\"/documents/considerations-choosing-flash-file-system\">\n<article class=\"embedded-entity\">\n<img src=\"/sites/default/files/styles/max_325x325/public/2017-06/choosing_yaffs_0.jpg?itok=YuV5Z__e\" width=\"325\" height=\"325\" alt=\"Thumbnail\" title=\"Choosing Yaffs\" class=\"img-responsive\" />\n</article>\n</a> </div>\n      \n  </section>\n\n\n  </div>\n\n              </div>\n              <div class=\"col-sm-4\">\n                    <div class=\"region region-front-highlight-2\">\n    <section id=\"block-frontimagehighlight2\" class=\"block block-block-content block-block-contentfa53fc80-f3c4-4d6e-b947-0a3bcd479480 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><a href=\"/yaffs-action\">\n<article class=\"embedded-entity\">\n<img src=\"/sites/default/files/styles/max_325x325/public/2017-06/atm_1.jpg?itok=HfIny6EH\" width=\"325\" height=\"325\" alt=\"Thumbnail\" title=\"ATM\" class=\"img-responsive\" />\n</article>\n</a> </div>\n      \n  </section>\n\n\n  </div>\n\n              </div>\n              <div class=\"col-sm-4\">\n                    <div class=\"region region-front-highlight-3\">\n    <section id=\"block-downloadyaffs\" class=\"block block-block-content block-block-contenteed71eb7-98b2-4109-aabe-7718283459ad clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><a href=\"/get-yaffs\">\n<article class=\"embedded-entity\">\n<img src=\"/sites/default/files/styles/max_325x325/public/2017-06/download_now_0.jpg?itok=XdRx8zkI\" width=\"325\" height=\"325\" alt=\"Thumbnail\" title=\"Download Yaffs\" class=\"img-responsive\" />\n</article>\n</a> </div>\n      \n  </section>\n\n\n  </div>\n\n              </div>\n            </div>\n                        </section>\n\n                </div>\n  </div>\n\n  <div class=\"container-fluid front-pane-1\">\n        <div class=\"container\">\n        \n    </div>\n  </div>\n\n  <div class=\"container-fluid front-pane-2\">\n        <div class=\"container\">\n          <div class=\"region region-front-pane-2\">\n    <section class=\"views-element-container block block-views block-views-blockyaffs-user-logos-block-1 clearfix\" id=\"block-views-block-yaffs-user-logos-block-1\">\n  \n    \n\n      <div class=\"form-group\"><div class=\"view view-yaffs-user-logos view-id-yaffs_user_logos view-display-id-block_1 js-view-dom-id-8a35fcda02584f84c79a8d5e2576f68f0216117953eb3ee7556ddd61dbbc1289\">\n  \n    \n      \n      <div class=\"view-content\">\n      <div id=\"views-bootstrap-yaffs-user-logos-block-1\"  class=\"grid views-view-grid horizontal\">\n            <div class=\"row\">\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\"><a href=\"/yaffs-action\">  <img src=\"/sites/default/files/styles/small/public/logos/designA_logo.png?itok=5VWxByrk\" width=\"200\" height=\"141\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</a></div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\"><a href=\"/yaffs-action\">  <img src=\"/sites/default/files/styles/small/public/logos/eaton_logo.png?itok=kExm8d-W\" width=\"200\" height=\"84\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</a></div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\"><a href=\"/yaffs-action\">  <img src=\"/sites/default/files/styles/small/public/logos/LANCOM_Logo_4c.png?itok=ZIDg8yYt\" width=\"200\" height=\"50\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</a></div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\"><a href=\"/yaffs-action\">  <img src=\"/sites/default/files/styles/small/public/logos/bernina_international_logo.png?itok=G8DeIWtW\" width=\"200\" height=\"30\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</a></div></div>\n          </div>\n              </div>\n          <div class=\"row\">\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\"><a href=\"/yaffs-action\">  <img src=\"/sites/default/files/styles/small/public/logos/gallagher_logo.png?itok=lQyDJeN1\" width=\"200\" height=\"65\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</a></div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\"><a href=\"/yaffs-action\">  <img src=\"/sites/default/files/styles/small/public/logos/android_logo.png?itok=MShHoIK7\" width=\"170\" height=\"71\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</a></div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\"><a href=\"/yaffs-action\">  <img src=\"/sites/default/files/styles/small/public/logos/leica_logo.png?itok=Ne2u8w3-\" width=\"200\" height=\"130\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</a></div></div>\n          </div>\n              </div>\n      </div>\n\n    </div>\n  \n            <div class=\"view-footer\">\n      <a class=\"btn btn-default\" href=\"/yaffs-action\">Who uses Yaffs? Read more...</a>\n    </div>\n    </div>\n</div>\n\n  </section>\n\n\n  </div>\n\n    </div>\n  </div>\n\n  <div class=\"container-fluid front-pane-3\">\n        <div class=\"container\">\n          <div class=\"region region-front-pane-3\">\n    <drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=views_block__highlighted_yaffs_features_block_1&amp;1=full&amp;2\" token=\"gB3-IGC5aZ2ydGwcNwWipMPBfoe83OMhTnU9K538T4I\"></drupal-render-placeholder>\n  </div>\n\n    </div>\n  </div>\n\n  <div class=\"container-fluid front-pane-4\">\n        <div class=\"container\" >\n          <div class=\"region region-front-pane-4\">\n    <drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=views_block__yaffs_documents_highlights_block_1&amp;1=full&amp;2\" token=\"bZIW0U1_F_84C39HtNdqosgCfD9uISVXB9SoG_DMDYw\"></drupal-render-placeholder>\n  </div>\n\n    </div>\n  </div>\n\n    <div class=\"container-fluid front-pane-5\">\n                <div class=\"container\" >\n              <div class=\"region region-front-pane-5\">\n    <section id=\"block-frontpageprimeryaffs\" class=\"block block-block-content block-block-contente7a8d2de-4fbb-4680-9e18-fe4d8337f1d6 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<h1>Flash file systems primer</h1>\n<h2>Background &amp; basics</h2>\n<h3><span>What is a </span><span>F</span><span>lash </span><span>F</span><span>ile </span><span>S</span><span>ystem</span>?</h3>\n<p><span>A <span>Flash File System</span> stores data on flash memory, rather than a hard drive. Flash is used because it’s faster, much more tolerant of physical stress and takes less power. A <span>flash filesystem</span> is used to manage the data and get the best out of flash memory.</span></p>\n<p><span>As two examples, a flash memory chip needs to be erased in blocks before it is rewritten and a flash file system will manage that; flash memory has a limited number of writes per block so many flash file systems incorporate a <span>wear levelling</span> mechanism to ensure the writes are spread out.</span></p>\n<p><span>A flash file system is most useful as a part of an embedded system,. As a developer, you <em>can</em>&nbsp;read from and write directly to your Flash memory on an embedded system, but unless your use is extremely limited, you\'ll probably find that you come up against problems that Flash file systems have already solved.</span></p>\n<h3>What are NAND flash &amp; NOR flash?</h3>\n<p><span>These are the two fundamental flash architectures and have very different characteristics in performance, reliability, erase cycles, life span, and price. They also differ fundamentally from hard disk drives, and so need specialised handling.</span></p>\n<table>\n<tbody>\n <tr>\n  <td>\n  <p>&nbsp;</p>\n   </td>\n  <td>\n  <p>NAND flash</p>\n   </td>\n  <td>\n  <p>NOR flash</p>\n   </td>\n </tr>\n <tr>\n  <td>\n  <p>Storage density</p>\n   </td>\n  <td>\n  <p>Higher</p>\n   </td>\n  <td>\n  <p>Lower</p>\n   </td>\n </tr>\n <tr>\n  <td>\n  <p>Read performance</p>\n   </td>\n  <td>\n  <p>Fast</p>\n   </td>\n  <td>\n  <p>Fast (may be slowed by serial access)</p>\n   </td>\n </tr>\n <tr>\n  <td>\n  <p>Write performance</p>\n   </td>\n  <td>\n  <p>Faster</p>\n   </td>\n  <td>\n  <p>Slower (may be slowed further by serial access)</p>\n   </td>\n </tr>\n <tr>\n  <td>\n  <p>Erase performance</p>\n   </td>\n  <td>\n  <p>Faster (low ms typically)</p>\n   </td>\n  <td>\n  <p>Slower (possibly seconds)</p>\n   </td>\n </tr>\n <tr>\n  <td>\n  <p>Storage reliability</p>\n   </td>\n  <td>\n  <p>Lower (without management)</p>\n   </td>\n  <td>\n  <p>Better</p>\n   </td>\n </tr>\n <tr>\n  <td>\n  <p>Life span</p>\n   </td>\n  <td>\n  <p>Higher</p>\n   </td>\n  <td>\n  <p>Lower</p>\n   </td>\n </tr>\n <tr>\n  <td>\n  <p>Price</p>\n   </td>\n  <td>\n  <p>Lower</p>\n   </td>\n  <td>\n  <p>Higher</p>\n   </td>\n </tr>\n</tbody>\n</table>\n<p><span>Yaffs is both an <span>embedded NAN</span><span>D flash file system</span> and an <span>embedded N</span><span>OR Flash file system</span>. It can handle SLC, TLC and MLC NAND. It also works on MLC and SLC NOR. And it can work with parallel or serial access including Serial Peripheral Bus (SPI).</span></p>\n<h3>What special functions does a <span>file system </span><span>for flash</span> include?</h3>\n<p><span>As well as the normal file system functions, a <span>flash file system embedded</span> in hardware should help the device to start and stop quickly and deal well with losing power with no warning, without corrupting the data; and, manage the foibles of flash memory, protecting the stored data with extreme reliability. (Read our paper <a href=\"/documents/considerations-choosing-flash-file-system\">Considerations in Choosing a Flash File System</a>.)</span></p>\n<p><span><span>To these ends, an embedded flash file system must employ extra steps to achieve these such as using log structuring, rather than traditional file structuring plus a flash translation layer; manage power loss and recovery; include flash memory wear levelling; deal with the unreliability of flash from read and write disturbs, by using error correction (ECC), bad block remapping, over provision and flash block refreshing; ensure it’s ready to write fast by using garbage collection and flash block erase to prepare; and manage writing while avoiding write amplification. </span></span></p>\n<h4>What is a log-structured file system?</h4>\n<p><span>Log structuring means that data is written to the file system as a sequence of changes to the file system. This has the advantage that there is less overhead, and so it\'s faster than a non-log-structured system. More important though is that it is more robust against power failure. It also means that a file may be fragmented. For hard drives, fragmentation can mean much slower access due to the time required to mechanically move the read heads around the disk, but flash memory has no moving parts so there is no overhead for flash.</span></p>\n<p><span>Yaffs is log structured a <span>flash file system </span><span>architecture</span> which is faster and more robust than the alternatives.</span></p>\n<h4>What is a <span>Flash Translation Layer</span> (FTL) ?</h4>\n<p><span>It is sometimes desirable to use regular block file systems (such as FAT) with flash memory. In such cases, a Flash Translation Layer presents flash memory or a flash file system as if it\'s an ordinary hard drive.</span></p>\n<p><span>An FTL is an incomplete storage solution it still requires a file system. This makes two layers where data can be damaged and lost: in the FTL and in the <span>flash memory </span><span>file system</span>.</span></p>\n<p><span>True <span>file systems for flash memory</span>, such as Yaffs, do not use FTLs. They deal directly with the idiosyncrasies of flash, providing a faster and more reliable solution.</span></p>\n<h4>What is power loss recovery?</h4>\n<p><span>When power to any storage device is suddenly lost, the device can end up in an unknown state and may have damaged areas. Most file systems have to work hard to ensure that they are in a consistent state after power loss. <span>E</span><span>mbedded file systems</span> <span>for flash</span> may make allowances for unscheduled power loss with a recovery process.</span></p>\n<p><span>Yaffs is built with fault tolerance as a guiding principle and so is designed so power loss is considered a normal event.</span></p>\n<h4>What is <span>wear levelling</span>?</h4>\n<p><span>Flash chips wear out. Each time a part of the flash memory is erased and written, it is slightly damaged. <span>Embedded f</span><span>lash file systems</span> note the danger, and sometimes try to spread the damage rather than having it concentrated in one region, so prolonging the life of the memory and the life of the device.</span></p>\n<p><span>Yaffs is designed so that extra <span>wear leveling</span> is unnecessary. Instead, it’s automatically <span>wear levelling</span> because of the log structure.</span></p>\n<h4>What is flash read disturb? What is flash write disturb?</h4>\n<p><span><a href=\"/documents/yaffs-nand-flash-failure-mitigation\">NAND flash may experience degradation or loss of data</a> owing to reads of pages in the same block or data changes in neighbouring blocks of the NAND device. This is particularly true for MLC NAND.</span></p>\n<p><span>Yaffs uses block refreshing to deal with such problems.</span></p>\n<h4>What is flash error correction/flash ECC?</h4>\n<p><span>There are ways in which flash memory can be corrupted – for instance F-N tunnelling problems and leaky oxide layers. See our <a href=\"/documents/yaffs-nand-flash-failure-mitigation\">detailed discussion of flash memory problems</a>.</span></p>\n<p><span>But every bit counts, and especially if it\'s part of critical data or essential to the correct working of a system. Flash error correction keeps track of a section of memory to tell if there\'s corruption, and provides ways to correct these small errors.</span></p>\n<p><span>Yaffs can use hardware or software based ECC.</span></p>\n<h4>What is bad-block remapping?</h4>\n<p><span>File systems are built upon storing data on physical media. But all media suffers deterioration. Some hardware or <span>flash media </span><span>file systems</span> keep lists of damaged regions and behind the scenes, substitute known good ones in their place.</span></p>\n<p><span>Because of the way that Yaffs works, there\'s no need for bad block remapping because it isn’t a block structured file system.</span></p>\n<h4>What is <span>o</span><span>ver-provisioning</span> ?</h4>\n<p><span>Knowing that the media will degrade and suffer errors, and needing space to alter data because of the nature of flash memory, sometimes a <span>flash memory based </span><span>file system</span> puts aside a portion of the media for this use. This is <span>overprovisioning</span>. Often this space used when remapping bad blocks.</span></p>\n<p><span>Because Yaffs is log structured, it has the advantage that it does not need <span>over provision</span><span>ing</span>, making more memory available to store data.</span></p>\n<h4>What is flash block refreshing?</h4>\n<p><span>To counteract the problems of unreliable flash memory – for instance errors due to read and write disturbs – a flash filesystem can refresh the memory, by making a new copy of a block.</span></p>\n<p><span>Yaffs includes flash block refreshing.</span></p>\n<h4>What is flash garbage collection?</h4>\n<p><span>When a file is deleted, or a part of a file is overwritten, file systems often simply mark the flash space as deleted, rather than removing it. Later they reclaim the space for reuse. This is garbage collection.</span></p>\n<p><span>Yaffs has garbage collection to maximise the amount of data the file system can store.</span></p>\n<h4>What is flash block erase?</h4>\n<p><span>Data must be written into blank areas of the flash chip, but erasing takes time. Rather than erase and write at the same time, in order to speed writes, NAND and <span>NOR flash file systems</span> can prepare blocks for later use. This is not usually necessary for other storage media.</span></p>\n<p><span>As part of garbage collection, Yaffs uses a block erase strategy.</span></p>\n<h4>What is flash write amplification ?</h4>\n<p><span>In many block-based flash file systems, when data changes the new data must be written to the disk, and then the old data must be marked as invalid. A small change to the data can have consequences that propagate involving writing to the memory twice or more as the old data is cleaned up by garbage collection and files are organised to take the minimum amount of space. This is write amplification - a single small write causing a cascade of writes (and erases) of whole blocks.</span></p>\n<p><span>Yaffs avoids much of this problem by being log structured, meaning that flash memory is slower to reach it\'s maximum number of cycles, while writing is faster.</span></p>\n<h2>How does Yaffs work?</h2>\n<p><span>You can find full details in our paper <a href=\"/documents/how-yaffs-works\">How Yaffs Works</a>&nbsp;but briefly, here\'s how it works.</span></p>\n<p><span>It\'s a log-structured filing system. This also ensures that Yaffs is wear-levelling is built into the design because no one part of the flash memory is used any more than another.</span></p>\n<p><span>A Yaffs object is anything that Yaffs stores - for instance a file or a directory.</span></p>\n<p><span>The memory in NAND flash is arranged in pages. A page is the unit of allocation and programming. In Yaffs, the unit of allocation is called the chunk. Typically a chunk will be the same as a NAND page, but there is flexibility to use chunks which map to multiple pages (eg. A system may have two NAND chips in parallel requiring 2x2048 = 4096 byte chunks) . This distinction gives a lot of flexibility in how the system can be configured.</span></p>\n<p><span>A fixed but configurable number of chunks form a block which is the unit of erasure.</span></p>\n<p><span>NAND flash is shipped with bad blocks and further blocks may go bad during the operation of the device so Yaffs detects and marks bad blocks.</span></p>\n<p><span>NAND flash also typically requires the use of some sort of error detection and correction code (ECC). Yaffs can either use existing ECC logic or provide its own.</span></p>\n<p><span>Yaffs maintains data in RAM about the file system, but this is not needed for Yaffs to work - so the device can safely lose power at any point without data corruption.</span></p>\n<p><span>Here\'s how the Yaffs filesystem works to ensure data safety and a very fast startup... At regular points and on controlled shutdown, checkpoint blocks are written to the flash memory, containing all the data to quickly rebuild the file system. Under usual circumstances this checkpoint is used when a device is started, to very quickly rebuild the RAM data about the file system. If the checkpoint is determined to be corrupted, or if the user requested then the file system is rebuilt by scanning.</span></p>\n<p><span>To do this, Yaffs makes a prescan, to find the sequence numbers for blocks. Then it scans through blocks backwards to build up the list of chunks that make up objects. It speeds up this process by using Block Summaries, which are collections of all the tags in a data in a block. (But it\'s still always possible to go back to the chunks themselves, to find the tags, if a summary is missing or damaged.)</span></p>\n<p><span>And tags are how Yaffs tells that a chunk belongs to a particular object.</span></p>\n<p><span>Tags are also how Yaffs knows which chunks make up the current version of an object... Because the file system is log structured, if an object has been updated, only the latest chunks are used, giving the correct version of the object. A full description of the process is available in the technical documentation, and of course you can browse the code to see exactly how it all works; there\'s a lot more to tags, the metadata that they can hold, how they are stored, and how tags are used to link together objects into a file system with a POSIX interface.</span></p>\n<p><span>And of course that\'s not the end of the story. There\'s caching to deal with repeated small changes to data. There\'s garbage collection to let space be re-used, and Yaffs deals with collecting garbage differently depending on whether there\'s lots of free space or only a little. And part of making Yaffs a high performance flash file system is to make sure that re-useable blocks are erased well before they are needed, so that writing involves only a single operation. There\'s lazy loading to reduce scanning time. And all of this is built in a portable way, so that Yaffs can be configured to match almost any hardware, and can be ported to any operating system, or work on bare metal without an operating system. There\'s a test harness which is used to subject Yaffs to power failure, and ensure it works even with external data corruption. That\'s what makes it robust enough to send into space and to handle hundreds of terabytes of mission critical data.</span></p>\n<h4>Why is Yaffs special as an embedded flash file system?</h4>\n<p><span>Yaffs has been in use since 2002, and so it is hardened. It has been used in everything from phones to sewing machines to satellites. It is popular with Aerospace companies, and firms managing large infrastructure and in Point-of-Sale (POS) equipment (where customer feedback is very rapid!) It has been used in extreme conditions where it must not lose data, and where there is no chance for maintenance. It\'s been used for very large file systems up to 190TB. It\'s been used for safety critical applications, and millions of consumer devices.</span></p>\n<p><span>We carry out testing in a <a href=\"/documents/yaffs-robustness-and-testing\">rig which can simulate random power failures</a> and proved its reliability after tens to hundreds of millions of power failures.&nbsp;It\'s designed with an understanding of the constraints of flash memory and for speed.</span></p>\n<p><span>Yaffs works on multiple operating systems – Linux, VxWorks, Windows CE, eCos. - and also directly on bare metal, with no operating system. And it\'s easy to integrate into your RTOS or application using the Yaffs Direct Interface. It works with multiple types of flash memory - NAND &amp; NOR, SLC, MLC &amp; TLC.&nbsp;It\'s endian neutral. It\'s been used with 32-bit and 64-bit CPUs including MIPS, 68000, ARM, ColdFire, PowerPC and x86 variants. Yaffs has even been used with various DSP architectures! And it\'ll work with 16-bit with some tuning. So it can be configured to work with your design and the flash geometry that you need.</span></p>\n<p><span>And it\'s a <span>free embedded flash file system - </span><span>it’s open</span> <span>source</span>! <a href=\"/get-yaffs\">Grab the GPL version now</a>! Check out our the active community. And that\'s not the whole story - there are lots more reasons that make Yaffs special.&nbsp;</span></p>\n<p>&nbsp;</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n        </div>\n    </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"Q6li2PBjzWPLz64aEjFthqILKaz6B26H72bJneYktIrshv6hoD1zjIup5NNhA6NjJNbEgum4Gw\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:18:{i:0;s:26:\"languages:language_content\";i:1;s:28:\"languages:language_interface\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:8:\"url.site\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:73:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:16:\"block_content:25\";i:3;s:16:\"block_content:27\";i:4;s:16:\"block_content:28\";i:5;s:16:\"block_content:29\";i:6;s:16:\"block_content:30\";i:7;s:15:\"block_content:7\";i:8;s:18:\"block_content_view\";i:9;s:10:\"block_view\";i:10;s:32:\"config:block.block.choosingyaffs\";i:11;s:29:\"config:block.block.cookieinfo\";i:12;s:32:\"config:block.block.downloadyaffs\";i:13;s:30:\"config:block.block.footerlegal\";i:14;s:39:\"config:block.block.frontimagehighlight2\";i:15;s:32:\"config:block.block.frontpagehero\";i:16;s:39:\"config:block.block.frontpageprimeryaffs\";i:17;s:33:\"config:block.block.mainnavigation\";i:18;s:35:\"config:block.block.mainnavigation_2\";i:19;s:29:\"config:block.block.searchform\";i:20;s:31:\"config:block.block.sitebranding\";i:21;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:22;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:23;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:24;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:25;s:37:\"config:block.block.yaffs_account_menu\";i:26;s:33:\"config:block.block.yaffs_block_10\";i:27;s:32:\"config:block.block.yaffs_block_5\";i:28;s:32:\"config:block.block.yaffs_block_6\";i:29;s:32:\"config:block.block.yaffs_block_8\";i:30;s:32:\"config:block.block.yaffs_block_9\";i:31;s:36:\"config:block.block.yaffs_breadcrumbs\";i:32;s:32:\"config:block.block.yaffs_content\";i:33;s:29:\"config:block.block.yaffs_help\";i:34;s:36:\"config:block.block.yaffs_local_tasks\";i:35;s:33:\"config:block.block.yaffs_messages\";i:36;s:35:\"config:block.block.yaffs_page_title\";i:37;s:32:\"config:block.block.yaffs_user_21\";i:38;s:31:\"config:block.block.yaffsinspace\";i:39;s:17:\"config:block_list\";i:40;s:24:\"config:color.theme.yaffs\";i:41;s:47:\"config:field.storage.node.field_yaffs_user_logo\";i:42;s:30:\"config:filter.format.full_html\";i:43;s:29:\"config:filter.format.raw_html\";i:44;s:24:\"config:image.style.small\";i:45;s:22:\"config:search.settings\";i:46;s:26:\"config:system.menu.account\";i:47;s:23:\"config:system.menu.main\";i:48;s:18:\"config:system.site\";i:49;s:34:\"config:views.view.yaffs_user_logos\";i:50;s:7:\"file:40\";i:51;s:7:\"file:43\";i:52;s:7:\"file:44\";i:53;s:7:\"file:45\";i:54;s:7:\"file:46\";i:55;s:7:\"file:47\";i:56;s:7:\"file:48\";i:57;s:7:\"media:5\";i:58;s:7:\"media:8\";i:59;s:7:\"media:9\";i:60;s:8:\"node:397\";i:61;s:8:\"node:398\";i:62;s:8:\"node:399\";i:63;s:8:\"node:400\";i:64;s:8:\"node:401\";i:65;s:8:\"node:457\";i:66;s:8:\"node:460\";i:67;s:8:\"node:487\";i:68;s:9:\"node_list\";i:69;s:9:\"node_view\";i:70;s:6:\"user:0\";i:71;s:6:\"user:1\";i:72;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:11:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:18:\"views/views.module\";i:9;s:18:\"views/views.module\";i:10;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:20:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:84:\"A Robust Flash File System Since 2002 | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:18:\"https://yaffs.net/\";}}i:1;s:9:\"shortlink\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:18:\"https://yaffs.net/\";}}i:1;s:13:\"canonical_url\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:4;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:11:\"description\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:11:\"description\";}i:5;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:6;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:7;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:8;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:9;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:10;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:11;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:17;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:18;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:19;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:2:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:5:\"/home\";}i:1;b:1;}}s:12:\"placeholders\";a:4:{s:240:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=views_block__yaffs_documents_highlights_block_1&amp;1=full&amp;2\" token=\"bZIW0U1_F_84C39HtNdqosgCfD9uISVXB9SoG_DMDYw\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:47:\"views_block__yaffs_documents_highlights_block_1\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:47:\"views_block__yaffs_documents_highlights_block_1\";i:1;s:4:\"full\";i:2;N;}}}s:240:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=views_block__highlighted_yaffs_features_block_1&amp;1=full&amp;2\" token=\"gB3-IGC5aZ2ydGwcNwWipMPBfoe83OMhTnU9K538T4I\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:47:\"views_block__highlighted_yaffs_features_block_1\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:47:\"views_block__highlighted_yaffs_features_block_1\";i:1;s:4:\"full\";i:2;N;}}}s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"Q6li2PBjzWPLz64aEjFthqILKaz6B26H72bJneYktIrshv6hoD1zjIup5NNhA6NjJNbEgum4Gw\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"Q6li2PBjzWPLz64aEjFthqILKaz6B26H72bJneYktIrshv6hoD1zjIup5NNhA6NjJNbEgum4Gw\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"Q6li2PBjzWPLz64aEjFthqILKaz6B26H72bJneYktIrshv6hoD1zjIup5NNhA6NjJNbEgum4Gw\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"Q6li2PBjzWPLz64aEjFthqILKaz6B26H72bJneYktIrshv6hoD1zjIup5NNhA6NjJNbEgum4Gw\">\";}}}}',-1,1516806325.985,1,'block_content:18 block_content:23 block_content:25 block_content:27 block_content:28 block_content:29 block_content:30 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:field.storage.node.field_yaffs_user_logo config:filter.format.full_html config:filter.format.raw_html config:image.style.small config:search.settings config:system.menu.account config:system.menu.main config:system.site config:views.view.yaffs_user_logos file:40 file:43 file:44 file:45 file:46 file:47 file:48 media:5 media:8 media:9 node:397 node:398 node:399 node:400 node:401 node:457 node:460 node:487 node_list node_view rendered user:0 user:1','2884'),('response:[languages:language_content]=en:[languages:language_interface]=en:[request_format]=html:[route]=view.use_cases.page_135786c7117b4e38d0f169239752ce71158266ae2f6e4aa230fbbb87bd699c0e3:[theme]=yaffs:[url]=hlSr8nu1u0h2P4ALoKbDEMwMNhq-yMSdTtFvIH98RnyI','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:26:\"languages:language_content\";i:1;s:28:\"languages:language_interface\";i:2;s:14:\"request_format\";i:3;s:5:\"route\";i:4;s:32:\"route.menu_active_trails:account\";i:5;s:29:\"route.menu_active_trails:main\";i:6;s:30:\"route.menu_active_trails:tools\";i:7;s:5:\"theme\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:14:\"url.query_args\";i:13;s:30:\"url.query_args:_wrapper_format\";i:14;s:21:\"user.node_grants:view\";i:15;s:16:\"user.permissions\";i:16;s:10:\"user.roles\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:75:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:field.storage.node.body\";i:37;s:37:\"config:field.storage.node.field_image\";i:38;s:44:\"config:field.storage.node.field_organisation\";i:39;s:35:\"config:field.storage.node.field_url\";i:40;s:47:\"config:field.storage.node.field_yaffs_user_logo\";i:41;s:31:\"config:filter.format.basic_html\";i:42;s:30:\"config:filter.format.full_html\";i:43;s:29:\"config:filter.format.raw_html\";i:44;s:32:\"config:image.style.max_1300x1300\";i:45;s:30:\"config:image.style.max_325x325\";i:46;s:30:\"config:image.style.max_650x650\";i:47;s:24:\"config:image.style.small\";i:48;s:37:\"config:responsive_image.styles.narrow\";i:49;s:22:\"config:search.settings\";i:50;s:26:\"config:system.menu.account\";i:51;s:23:\"config:system.menu.main\";i:52;s:24:\"config:system.menu.tools\";i:53;s:18:\"config:system.site\";i:54;s:27:\"config:views.view.use_cases\";i:55;s:34:\"config:views.view.yaffs_user_logos\";i:56;s:7:\"file:40\";i:57;s:7:\"file:43\";i:58;s:7:\"file:44\";i:59;s:7:\"file:45\";i:60;s:7:\"file:46\";i:61;s:7:\"file:47\";i:62;s:7:\"file:48\";i:63;s:8:\"node:397\";i:64;s:8:\"node:398\";i:65;s:8:\"node:399\";i:66;s:8:\"node:400\";i:67;s:8:\"node:401\";i:68;s:8:\"node:457\";i:69;s:8:\"node:460\";i:70;s:8:\"node:502\";i:71;s:8:\"node:503\";i:72;s:9:\"node_list\";i:73;s:8:\"rendered\";i:74;s:6:\"user:0\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Fri, 26 Jan 2018 04:19:33 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:17178:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"aiybtgMPPFKbVrsPXGgdCthOZGY7wUrsSa-sv3vEkPX0qjQfhiiu2xF0KxJvd00jOL3LiJQGBw\">\n    <title>Use cases | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"aiybtgMPPFKbVrsPXGgdCthOZGY7wUrsSa-sv3vEkPX0qjQfhiiu2xF0KxJvd00jOL3LiJQGBw\">\n    <js-placeholder token=\"aiybtgMPPFKbVrsPXGgdCthOZGY7wUrsSa-sv3vEkPX0qjQfhiiu2xF0KxJvd00jOL3LiJQGBw\">\n  </head>\n  <body class=\"fontyourface path-yaffs-action navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\">Use cases</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <div class=\"views-element-container form-group\"><div class=\"view view-use-cases view-id-use_cases view-display-id-page_1 js-view-dom-id-f6da02904ebee92f62cb603280cc675b6f7d4f84dc18eac876dc03dfa654540b\">\n  \n    \n      <div class=\"view-header\">\n      <div class=\"view view-yaffs-user-logos view-id-yaffs_user_logos view-display-id-block_2 js-view-dom-id-676289aa4902fd67e3ec02738cf032be38a4e96dc652f6d64ff3bab9b4610568\">\n  \n    \n      \n      <div class=\"view-content\">\n      <div id=\"views-bootstrap-yaffs-user-logos-block-2\"  class=\"grid views-view-grid horizontal\">\n            <div class=\"row\">\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\">  <img src=\"/sites/default/files/styles/small/public/logos/designA_logo.png?itok=5VWxByrk\" width=\"200\" height=\"141\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\">  <img src=\"/sites/default/files/styles/small/public/logos/eaton_logo.png?itok=kExm8d-W\" width=\"200\" height=\"84\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\">  <img src=\"/sites/default/files/styles/small/public/logos/LANCOM_Logo_4c.png?itok=ZIDg8yYt\" width=\"200\" height=\"50\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\">  <img src=\"/sites/default/files/styles/small/public/logos/bernina_international_logo.png?itok=G8DeIWtW\" width=\"200\" height=\"30\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div></div>\n          </div>\n              </div>\n          <div class=\"row\">\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\">  <img src=\"/sites/default/files/styles/small/public/logos/gallagher_logo.png?itok=lQyDJeN1\" width=\"200\" height=\"65\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\">  <img src=\"/sites/default/files/styles/small/public/logos/android_logo.png?itok=MShHoIK7\" width=\"170\" height=\"71\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div></div>\n          </div>\n                  <div class=\"col col-xs-12 col-sm-6 col-md-3 col-lg-3 \">\n            <div class=\"views-field views-field-field-yaffs-user-logo\"><div class=\"field-content\">  <img src=\"/sites/default/files/styles/small/public/logos/leica_logo.png?itok=Ne2u8w3-\" width=\"200\" height=\"130\" alt=\"\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div></div>\n          </div>\n              </div>\n      </div>\n\n    </div>\n  \n          </div>\n\n    </div>\n      \n      <div class=\"view-content\">\n          <div class=\"views-row\">\n    <div class=\"views-field views-field-title\"><h3 class=\"field-content\">“Almost 15 years …never seen a failure...”</h3></div><div class=\"views-field views-field-body\"><div class=\"field-content\"><p dir=\"ltr\">The DDS range of digital data storage solutions from Tape Replacement Ltd deliver a modern, solid state data storage unit designed specifically to replace out-dated magnetic tape, magneto optical, disc hard-drive units such as those used within legacy telephone switching systems. This saves companies such as telcos, and ultimately their customers, millions of dollars in upgrade costs as well as improving overall system reliability and keeping functioning equipment from being dumped in landfills.</p>\n\n<p dir=\"ltr\">The storage layer is made up of two independent stacks of NAND chips, combined using a RAID-1 structure, using YAFFS to expose this to the application.</p>\n\n<p dir=\"ltr\">According to Andre Renaud, Engineering Manager at Tape Replacement:</p>\n\n<blockquote>\n<p dir=\"ltr\">“We\'ve been running the units for almost 15 years now, and we have never seen a failure of the underlying YAFFS/NAND storage system. YAFFS provides us with a fast, reliable storage mechanism which is especially useful given the changes in NAND technologies over the years, and the intricate technical details of their behaviour.”</p>\n</blockquote></div></div><div class=\"views-field views-field-field-organisation\"><div class=\"field-content\">Tape Replacement Ltd</div></div><div class=\"views-field views-field-field-url\"><div class=\"field-content\"><a href=\"http://www.tape-replacement.com/\">http://www.tape-replacement.com/</a></div></div><div class=\"views-field views-field-field-image\"><div class=\"field-content\">    <img srcset=\"/sites/default/files/styles/max_325x325/public/2017-09/tape_replacement.jpg?itok=HsMgXnI2 325w, /sites/default/files/styles/max_650x650/public/2017-09/tape_replacement.jpg?itok=cUoW-9yU 555w\" sizes=\"(min-width: 1290px) 325px, (min-width: 851px) 25vw, (min-width: 560px) 50vw, 100vw\" src=\"/sites/default/files/styles/max_325x325/public/2017-09/tape_replacement.jpg?itok=HsMgXnI2\" alt=\"Tape Replacement Ltd Logo\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div></div>\n  </div>\n    <div class=\"views-row\">\n    <div class=\"views-field views-field-title\"><h3 class=\"field-content\">Yaffs in space!</h3></div><div class=\"views-field views-field-body\"><div class=\"field-content\"><p><strong>NASA TESS Mission </strong>This <strong>Transiting Exoplanet Survey Satellite (TESS)</strong> will discover thousands of exoplanets in orbit around the brightest stars in the sky.</p>\n\n<p>It is a project regularly using our Yaffs File System to store incoming data and preserve it, in the rigours of the space environment, before sending it back to Earth.</p>\n\n<p>In a two-year survey of the solar neighborhood, TESS will monitor more than 200,000 stars for temporary drops in brightness caused by planetary transits. This first-ever spaceborne all-sky transit survey will identify planets ranging from Earth-sized to gas giants, around a wide range of stellar types and orbital distances. No ground-based survey can achieve this feat.</p>\n\n<p>Some File Systems are not robust enough to be suitable for such exacting work.</p></div></div><div class=\"views-field views-field-field-organisation\"><div class=\"field-content\"></div></div><div class=\"views-field views-field-field-url\"><div class=\"field-content\"></div></div><div class=\"views-field views-field-field-image\"><div class=\"field-content\"></div></div>\n  </div>\n\n    </div>\n  \n      \n            <div class=\"view-footer\">\n      \n<h3>Yaffs in action</h3>\n<p>Android phones were early adopters of Yaffs, providing a huge international test-bed, increasing exposure and confidence in the robustness of Yaffs. In turn, this attracted many customers who particularly value robustness, and now Yaffs is used in many high-reliability areas such as aerospace and critical infrastructure.</p>\n<p>It wouldn\'t be surprising if Yaffs hadn\'t already been part of your day today...</p>\n<p>Making a cup of coffee? Yaffs is used in the process controllers that pump and refine the water and the electricity or gas used to heat the water.</p>\n<p>Using the internet? Many of the routers and other equipment use Yaffs. If they stopped working you\'d probably not be reading this page.</p>\n<p>Used a phone? Well some phones use Yaffs. Yaffs is also used in cell towers, telephone exchanges, video phones, video codecs,... Without Yaffs you wouldn\'t even get a dial tone.</p>\n<p>Flying somewhere? Yaffs is used in planes: both pilot information systems and cabin systems. It is also used in point of sale equipment and public information systems (eg. passenger information systems).</p>\n<p>Watching a movie on TV? Well first off, Yaffs is used in the movie production equipment (cameras and monitors) as well as synthesizers and digital musical instruments used to make the soundtrack. Yaffs is used in TV broadcast equipment and set top boxes that get the movie to your TV, then lastly, Yaffs is used in some TVs or sound systems.</p>\n<p>Driving on a road? Lots of data was needed to build that road and Yaffs gets involved all the way. Yaffs is used in the GPSs, laser scanners and total stations (modern day theodolites) used to gather the data. This data then goes back to the office for design, then gets sent back out to automated Yaffs-powered construction equipment (laser and GPS guided graders, pavers etc) to make accurately built roads which are safer and last longer.</p>\n<p>It\'s used in keeping you safe: in building security and in building monitoring; in food security and safety systems; and, in the provision of the emergency services. People and companies trust Yaffs to be reliable.</p>\n\n    </div>\n    </div>\n</div>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"aiybtgMPPFKbVrsPXGgdCthOZGY7wUrsSa-sv3vEkPX0qjQfhiiu2xF0KxJvd00jOL3LiJQGBw\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:26:\"languages:language_content\";i:1;s:28:\"languages:language_interface\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:14:\"url.query_args\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:75:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:field.storage.node.body\";i:37;s:37:\"config:field.storage.node.field_image\";i:38;s:44:\"config:field.storage.node.field_organisation\";i:39;s:35:\"config:field.storage.node.field_url\";i:40;s:47:\"config:field.storage.node.field_yaffs_user_logo\";i:41;s:31:\"config:filter.format.basic_html\";i:42;s:30:\"config:filter.format.full_html\";i:43;s:29:\"config:filter.format.raw_html\";i:44;s:32:\"config:image.style.max_1300x1300\";i:45;s:30:\"config:image.style.max_325x325\";i:46;s:30:\"config:image.style.max_650x650\";i:47;s:24:\"config:image.style.small\";i:48;s:37:\"config:responsive_image.styles.narrow\";i:49;s:22:\"config:search.settings\";i:50;s:26:\"config:system.menu.account\";i:51;s:23:\"config:system.menu.main\";i:52;s:24:\"config:system.menu.tools\";i:53;s:18:\"config:system.site\";i:54;s:27:\"config:views.view.use_cases\";i:55;s:34:\"config:views.view.yaffs_user_logos\";i:56;s:7:\"file:40\";i:57;s:7:\"file:43\";i:58;s:7:\"file:44\";i:59;s:7:\"file:45\";i:60;s:7:\"file:46\";i:61;s:7:\"file:47\";i:62;s:7:\"file:48\";i:63;s:8:\"node:397\";i:64;s:8:\"node:398\";i:65;s:8:\"node:399\";i:66;s:8:\"node:400\";i:67;s:8:\"node:401\";i:68;s:8:\"node:457\";i:69;s:8:\"node:460\";i:70;s:8:\"node:502\";i:71;s:8:\"node:503\";i:72;s:9:\"node_list\";i:73;s:6:\"user:0\";i:74;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:14:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:18:\"views/views.module\";i:9;s:18:\"views/views.module\";i:10;s:18:\"views/views.module\";i:11;s:18:\"views/views.module\";i:12;s:16:\"core/picturefill\";i:13;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:18:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:56:\"Use cases | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:11:\"description\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:11:\"description\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:4;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:5;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:6;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:9;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:17;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:1:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"aiybtgMPPFKbVrsPXGgdCthOZGY7wUrsSa-sv3vEkPX0qjQfhiiu2xF0KxJvd00jOL3LiJQGBw\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"aiybtgMPPFKbVrsPXGgdCthOZGY7wUrsSa-sv3vEkPX0qjQfhiiu2xF0KxJvd00jOL3LiJQGBw\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"aiybtgMPPFKbVrsPXGgdCthOZGY7wUrsSa-sv3vEkPX0qjQfhiiu2xF0KxJvd00jOL3LiJQGBw\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"aiybtgMPPFKbVrsPXGgdCthOZGY7wUrsSa-sv3vEkPX0qjQfhiiu2xF0KxJvd00jOL3LiJQGBw\">\";}}}}',-1,1516940373.754,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:field.storage.node.body config:field.storage.node.field_image config:field.storage.node.field_organisation config:field.storage.node.field_url config:field.storage.node.field_yaffs_user_logo config:filter.format.basic_html config:filter.format.full_html config:filter.format.raw_html config:image.style.max_1300x1300 config:image.style.max_325x325 config:image.style.max_650x650 config:image.style.small config:responsive_image.styles.narrow config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site config:views.view.use_cases config:views.view.yaffs_user_logos file:40 file:43 file:44 file:45 file:46 file:47 file:48 node:397 node:398 node:399 node:400 node:401 node:457 node:460 node:502 node:503 node_list rendered user:0','3109'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical03f95bd4fc3f1f1da67a11d9f12a8c3d444895c5b366caf0867d95c262944432:[theme]=yaffs:[timezone]=Europe/London:[url]=https://UoMdF5vTJi0xPOwYE7UJajv0NP2D5pHHuW7sNvsAy_Q','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:49:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:31:\"config:filter.format.basic_html\";i:37;s:30:\"config:filter.format.full_html\";i:38;s:29:\"config:filter.format.raw_html\";i:39;s:22:\"config:search.settings\";i:40;s:26:\"config:system.menu.account\";i:41;s:23:\"config:system.menu.main\";i:42;s:24:\"config:system.menu.tools\";i:43;s:18:\"config:system.site\";i:44;s:8:\"node:369\";i:45;s:9:\"node_view\";i:46;s:8:\"rendered\";i:47;s:6:\"user:0\";i:48;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Tue, 14 Nov 2017 12:40:31 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:42053:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"MoCiVWnrWue89Oy9sBsFFC31bfVxassA2Y7DBl-wZzMPh3bL5WiEl794oUrHC49QKVpp8AmGhQ\">\n    <title>Yaffs Porting Guide | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"MoCiVWnrWue89Oy9sBsFFC31bfVxassA2Y7DBl-wZzMPh3bL5WiEl794oUrHC49QKVpp8AmGhQ\">\n    <js-placeholder token=\"MoCiVWnrWue89Oy9sBsFFC31bfVxassA2Y7DBl-wZzMPh3bL5WiEl794oUrHC49QKVpp8AmGhQ\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-page navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span property=\"schema:name\">Yaffs Porting Guide</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-porting-guide\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs Porting Guide\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>version 2.0</p>\n\n<p>Last changed: rrw@kynesim.co.uk, 2009-03-20<br />\n </p>\n\n<h3>Purpose</h3>\n\n<p>The purpose of this document is to describe how to bring up Yaffs2 on a board previously unsupported using the Yaffs Direct Interface, with an example using eCos on a Balloon board.</p>\n\n<p>Before we start you probably want to have the data sheet for the NAND chips you are using in front you so that you can refer to it as we go along.</p>\n\n<h3>Background and NAND Flash Properties</h3>\n\n<p>NAND flash is generally arranged in <em>pages</em> and <em>blocks</em>. A page contains a section of data bytes and then a section of out-of-band (<em>OOB</em>) data bytes. Blocks contain a number of pages .<br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram\" height=\"335\" src=\"/sites/yaffs.net/files/images/yaffs_porting_guide_html_2de490f8.png\" width=\"783\" /></a></p>\n\n<p>The OOB section of each page is used keep track of various things like file system state, error correction data and bad block marking.</p>\n\n<p>NAND flash is programmed (written to) and read on a largely page basis (though with some level of random access) and is erased on a block basis. That is, to erase a page, you must erase the rest of the containing block along with it.</p>\n\n<p>When programming NAND flash only 1\'s can be programmed to 0\'s, so to change a byte containing 0x00 to 0xFF it must be erased, along with the rest of the block. However subsequent programs may still be made without an erase if no 0s are to be changed to 1s, this might be useful in a scenario where subsequent data might regularly have this property.</p>\n\n<p>When manufactured NAND flash contains bad blocks, these are blocks that are not reliable and any data in them will commonly corrupt easily. These must be kept track of and the OOB data section is used to mark a bad block.</p>\n\n<p>NAND in general is prone to bit errors and for that reason the OOB data is also used to write error correction codes (ECC) so that some errors can be corrected.</p>\n\n<h3>Yaffs NAND Model</h3>\n\n<p>It is probably a good thing to detail at this point how Yaffs2 expects the NAND to behave so that you are aware of what you have to provide in the NAND driver to get YAFF running. Yaffs uses some different terminology in that it refers to a page as a <em>chunk</em>.</p>\n\n<p>Yaffs2 uses a fairly abstract model for NAND flash, this allows a lot of flexibility in the way Yaffs can be used. Yaffs is designed for NAND flash and makes the following assumptions and definitions:</p>\n\n<ul><li>NAND flash is arranged in blocks. Each block is the same size and comprises an integer number of chunks. Each block is treated as a single erasable item.</li>\n	<li>A page (chunk) equates to the allocation units of flash.</li>\n	<li>All accesses (reads and writes) are page (chunk) aligned.</li>\n	<li>When programming a NAND flash, only the zero bits in the pattern being programmed are relevant, and one bits are \"don\'t care\". For example, if a byte already contains the binary pattern 1010, then programming 1001 will result in the pattern which is the logical AND of these two patterns i.e. 1000. This is different to NOR flash.</li>\n</ul><p>Yaffs identifies blocks by their block number and chunks by their chunk Id. Yaffs treats a blank (0xFF filled) block as being free or erased. Thus, the equivalent of formatting for a Yaffs partition is to erase all the blocks that are not bad.</p>\n\n<p>Therefore Yaffs minimally needs access to functions that enable it to erase blocks and to read and write on a page basis. It is also helpful to be able to read only OOB data as reading/writing a full page to only view/update OOB data will cost many serial read cycles over the bus. This is an overhead that can be avoided using the random access read and write features of some nand chips.</p>\n\n<p> </p>\n\n<h2>Writing a Driver for NAND flash Chips</h2>\n\n<h3>Writing a Driver for the Samsung 628 K9F2G08U0M PCB0 on the Balloon Board (v3.01)</h3>\n\n<p>For the Balloon board the NAND chips hang off the CPLD which is in turn hooked up to the system bus. This is quite board specific and in this case reading the VHDL code reveals how to change the values on the pins of the NAND chips. You may look at the code by downloading the balloon source code (Appendix A) and looking at balloon3.vhd and Balloon_nand.vhd in balloon/vhdl/fpga/.</p>\n\n<p>It will be likely that this is significantly different on your platform and you should consult the relevant data sheets and documentation to determine how to access the NAND hardware on your board. I will present an example of the balloon board in order to give an overview of the kind of thing that is required.</p>\n\n<p>On the Balloon the CPLD routes data on the bus with certain address to the logic on the CPLD that actually controls the flash chips. They are as follows:</p>\n\n<p><code>NAND Data Bus : 0x10e00000</code> <code>NAND Control 2: 0x10e00010</code> <code>NAND Control : 0x10e00014</code></p>\n\n<p>Sending data to the \'NAND Data Bus\' address will put that data onto the I/O pins of the NAND chips. All of the nand chips are hooked up to the same pins on the CPLD so writing to the \'NAND Data Bus\' address will put the value written on the I/O pins for <em>all</em> of the available flash chips. To isolate the chip you want to work with using the chip enable pin on each flash chip.</p>\n\n<p>This is done by writing to the \'NAND Control\' (0x10e00014) address. When writing to \'NAND control\', the CPLD takes the data value on the bus and routes each bit to a different wire. This bit field is structured as follows:</p>\n\n<p> </p>\n\n<table><colgroup><col /><col /></colgroup><tr><td><em>Pin Attached To</em></td>\n			<td><em>Bit in NAND Control value</em></td>\n		</tr><tr><td>CLE (Control Latch Enable)</td>\n			<td>0</td>\n		</tr><tr><td>ALE (Address Latch Enable)</td>\n			<td>1</td>\n		</tr><tr><td>nCE0 (not Chip Enable for chip 0)</td>\n			<td>2</td>\n		</tr><tr><td>nCE1 (for chip 1)</td>\n			<td>3</td>\n		</tr><tr><td>nCE2 (for chip 2)</td>\n			<td>4</td>\n		</tr><tr><td>nCE3 (for chip 3)</td>\n			<td>5</td>\n		</tr><tr><td>nSE (not Chip Enable for chip 0)</td>\n			<td>6</td>\n		</tr><tr><td>nWP (not Write Protect)</td>\n			<td>7</td>\n		</tr></table><p> </p>\n\n<p>So for example bit 1 on the data lines is put onto the ALE pin on the physical chip. Bits prefixed with \'n\' are active low, for example chip 0 is selected when nCE0 is low and nCE1-3 are high.</p>\n\n<p> </p>\n\n<p>So writing to \'NAND Control\' we can change the values of the pins on the flash. Again, CLE, ALE, nSE and nWP change the value of the corresponding pin on all the flash chips available, nCE[0-3] will select the chip you are using.</p>\n\n<p>Finally, NAND flash typically comes in couple of flavours, 8 bit wide (x8) and 16 bit wide (x16). This means that x8 chips have 8 I/O pins and x16 have 16. The logic on the CPLD on the Balloon can handle both if you tell it which you are currently dealing with. Writing to \'NAND Control 2\' a value of 1 puts the CPLD logic for the NAND chips into x8 mode and 0 into x16 mode. I will assume for the rest of this document that there are only x8 chips connected to the balloon but it should be fairly trivial to extend it to support both.</p>\n\n<h3>Using the Flash Chips</h3>\n\n<p>The flash chips we\'re using have a number of commands, each triggered by a sequence of one or two command codes. You will want to refer to the data sheets for precise details of these functions, but I will briefly describe some of them in this document. The command set that we have for the particular chip we\'re using is table 1 on page 7 of the data sheet.</p>\n\n<p>To input a command there is generally one or two command input cycles. For two cycle commands there is generally an initial command followed by some data needed to complete the command then another command cycle to notify that the relevant data has been input and to start execution. For example for read operations the command 0x00 is latched in followed by some address input cycles followed by the command 0x30 to start the operation. With this in mind I will now describe how to input commands, the \'Command Latch Cycle\'.</p>\n\n<p>Note that for this section I have assumed that the bus is sufficiently slow that the set-up and hold times are not an issue, if you have a fast bus then you may have to wait for a small amount of time (refer to the data sheet) after changing values on the pins (by writing to the correct address) so that set-up and hold times are not violated.</p>\n\n<h3>Command Latch Cycle</h3>\n\n<p>For the command latch cycle you need to first select a chip by setting the relevant nCE low and then you need to set the CLE bit high, that means writing to the \'NAND Control\' address. ALE must also be low and should be set at the same time as CLE. It is then a case of putting the command value onto the I/O pins by writing to the \'NAND Data Bus\' address the value of the command you want. This will then latch in the command, afterwards you will need to clear the CLE bit again.</p>\n\n<p>You will also notice from looking at the data sheet that something needs to be done with the nWE (not <strong>w</strong>rite <strong>e</strong>nable) pin (specifically it should be low while latching in the command), but that I have yet to describe a mechanism for changing its value. This is because it is dealt with by the logic in the CPLD and whenever data is sent to the data address the CPLD will toggle nWE appropriately. (This is also true of nRE (not <strong>r</strong>ead <strong>e</strong>nable) when reading). This process is implemented in the nand_chip_select and the send_command functions (flash.c).</p>\n\n<h3>Address Latch Cycle and Addressing</h3>\n\n<p>The process for the Address Latch Cycle is similar to that for command latching (with the sense of ALE and CLE reversed) and can be looked at in the data sheet and is implemented in send_address in flash.c. The addressing is done by row and column. There are 5 address cycles on the flash chips we\'re looking at. The first cycle contains bits 0-7 of the column address, the second bits 8-11 with the remaining bits of the byte to be sent low. The row address is over 3 more cycles in a similar fashion.</p>\n\n<p>You may wish to chose to address the individual bytes of the chip with the OOB data not directly addressable. This has enabled me to lump several chips into the same address space and select the correct chip based on the address. Addresses then need to be converted to row and column. You should also check that they are page/block aligned in the relevant places if that\'s what your functions expect. It needn\'t be done this way any you could use page numbers instead of bytes just as easily.</p>\n\n<p><br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram 2\" height=\"209\" src=\"sites/yaffs.net/files/images/yaffs_porting_guide_html_m11b1f893.png\" width=\"654\" /></a></p>\n\n<p> </p>\n\n<p>The \'row\' is essentially the page index and the \'column\' is the index into to that page, so if you wanted to read from the start of page 213 you would send 0 for the column and 213 for the row. Conversely if you wanted just the OOB bytes from the same page you would send a column value of 2048 (given a page size of 2048+64 bytes).</p>\n\n<p><br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram 3\" height=\"271\" src=\"sites/yaffs.net/files/images/yaffs_porting_guide_html_m4650262f.png\" width=\"347\" /></a></p>\n\n<p> </p>\n\n<h3>Finding Chip information</h3>\n\n<p>You will then need to find out which chips are active (e.g. on the balloon there are 4 possible chips, not all of which will exist) and what type of chips they are. For this there is the \'Read ID\' operation. This operation is implemented in the read_ids function in flash.c. The result of the operation gives the manufacturer and device code of the chip and information about the chip (page size, block size, oob size etc). To find which chips are available, loop through the possible chips and start a Read ID command on each of them, if the expected data is returned then there is a chip at that location.</p>\n\n<p>The operation is started by sending the command 0x90 and then one address cycle of 0x00. There are then 5 read cycles which give you data about the device. A description of how to unpack this information from the returned bytes is located on page 32 of the data sheet for the chip described here.</p>\n\n<p>This then gives you how many chips you have and what layout the data in them has.</p>\n\n<h3>Bad Block Checking</h3>\n\n<p>Contained within a nand chip are blocks that the manufacturer will not guarantee the reliability of (this is to increase yield in manufacturing) and so bad blocks must be kept track of. The Samsung chips come with the first byte (or word for x16) of the first and second page of each bad block not programmed as 0xFF.</p>\n\n<p>This bad block marking should be maintained and should be added to in the same way when a bad block is is discovered. Yaffs will expect you to provide a function it can call to mark a particular block as bad when yaffs decides it is necessary.</p>\n\n<p>Yaffs keeps track of bad blocks itself so that the driver doesn\'t need to worry about masking out bad blocks.</p>\n\n<h3>Erasing a Block</h3>\n\n<p>An example of this operation is given in nand_erase_block in flash.c. If you are addressing the nand by bytes then you must first check that the address is aligned to the start of a block and then convert the address into a block number. If there is more than one chip this will involve working out which chip the address refers to and then selecting the correct chip. This can be seen in the select_chip function in flash.c. You must then send the first command cycle for the erase operation before sending 3 cycles of address and then finally the last command cycle.</p>\n\n<p>For the erase operation the 3 address cycles are different than for the read/write operations. Only address bits A18 to A29 is valid (for x8) while A12 to A17 is ignored. In terms of the ordinary 5 cycles address input you only need to deal with the last 3 cycles and of those only the highest 2 bits of the 3rd cycle are used and the full 4th and 5th cycle are used.</p>\n\n<p>Once the operation has been started the program can check the progress of the operation by sending a command of 70h. Each subsequent read will contain the read status. The driver should wait until the read is complete (by the read status operation), the read status operation also contains information about whether the erase failed and this information should be returned from the function doing the erase.</p>\n\n<h3>Reading a Page</h3>\n\n<p>Reading a page is performed by first selecting the correct chip and then converting the address to a row and column number. You can then sending the first command cycle for the read operation followed by 5 address cycles as described in the previous sections. The second command cycle then starts the read operation. The driver must then wait for the data to be retrieved into the data registers on the NAND before they can be read out over the bus. For the example chip this is 25us, consult the data sheet as this may differ. The data can then be read out sequentially byte by byte until all the data needed is obtained.</p>\n\n<h3>Writing a Page</h3>\n\n<p>Page program operations are performed by first selecting the correct chip converting the address to row and column numbers. The page program operation is initiated by the relevant fist command latch cycle (command 0x80) followed by an address latch cycle (as for read), serial data loading and then the second command latch cycle (command 0x10).</p>\n\n<p>The serial data loading is done by serially writing data to the I/O pins. Up to 2112 bytes (x8) can be loaded into the data registers. Once the second command cycle is sent the program is initiated and there is then a programming period where the loaded data is programmed into the appropriate cell. The driver should wait for this to complete by issuing a read status command (0x70) and monitoring the R/nB (ready / not busy) bit. The R/nB flag is on I/O pin 6 and can be checked by repeatedly reading from the \'NAND Data Bus\' address. Once the operation is complete the Write Status Bit (I/O 0 ) may be checked to confirm that the operation was successful.</p>\n\n<h2>Yaffs</h2>\n\n<h3>How To Use Yaffs</h3>\n\n<h3>Checking Out From Git</h3>\n\n<p>The first thing to do is to obtain the source code for Yaffs. This can be done from CVS, details of the process can be found at <a href=\"http://www.yaffs.net/download-yaffs-using-git\">http://www.yaffs.net/download-yaffs-using-git</a>.</p>\n\n<p>The following command will checkout the latest Git version using public read-only access, if you are using bash.</p>\n\n<p><code>$ </code>git clone git://www.aleph1.co.uk/yaffs2 </p>\n\n<h3>Making Some Tweaks to the Source Code</h3>\n\n<p>As of the latest version from CVS in January 2009, you will need to make a small number of changes before you can compile the source code without errors and warnings. There is a patch file included with this document.</p>\n\n<p>You will need to provide a definition of loff_t (in yaffs2/direct/ydirectenv.h) this is for holding the file size in bytes, you should make it big enough to hold the largest file size you wish to support. Unsigned long is probably a good place to start. You will need to edit yaffsfs.c to change a #if to a #ifdef. Then if you have the relevant warnings and -Werror switched on you will need to correct a couple of printf format strings to get the type right (changing a few \'%d\' to \'%ld\').</p>\n\n<p><code>change yaffs/ydirectenv.h </code></p>\n\n<p><code>+ typedef unsigned long loff_t; </code></p>\n\n<p><code>change yaffs2/direct/yaffsfs.c ~line 1117 </code></p>\n\n<p><code>- #if CONFIG_YAFFS_WINCE </code></p>\n\n<p><code>+ #ifdef CONFIG_YAFFS_WINCE</code></p>\n\n<h3>Relevant Files to the Direct Interface</h3>\n\n<p>There are quite a few files that get checked out, not all of which you will need to get going with the yaffs direct interface. The ones you will actually need are listed bellow, you do not need to compile the rest in.</p>\n\n<p><code><code>direct/yaffsfs.c </code></code></p>\n\n<p><code><code>yaffs_guts.c </code></code></p>\n\n<p><code><code>direct/yaffscfg.c </code></code></p>\n\n<p><code><code>yaffs_nand.c </code></code></p>\n\n<p><code><code>yaffs_tagsvalidity.c </code></code></p>\n\n<p><code><code>yaffs_checkptrw.c </code></code></p>\n\n<p><code><code>yaffs_qsort.c </code></code></p>\n\n<p><code><code>yaffs_tagscompat.c </code></code></p>\n\n<p><code><code>yaffs_ecc.c </code></code></p>\n\n<p><code><code>yaffs_packedtags2.c</code></code></p>\n\n<h3>Some Relevant Preprocessor Flags</h3>\n\n<p>There are many different configuration options for yaffs, here are a few that you should be aware of for using the yaffs direct interface.</p>\n\n<ul><li>CONFIG_YAFFS_DIRECT - Tell yaffs to use the direct interface.</li>\n	<li>CONFIG_YAFFS_YAFFS2 - Tell yaffs we want to use yaffs2</li>\n	<li>CONFIG_YAFFS_PROVIDE_DEFS - provides some definitions for file types and #includes linux/types.h, linux/fs.h, linux/stat.h (see yaffs2/devextras.h).</li>\n	<li>CONFIG_YAFFSFS_PROVIDE_VALUES - This may be used so that you can customise error values and constants like O_RDONLY to match the underlying system values, if itis not defined then it includes errno.h,sys/stat.h and fcntl.h (see yaffs2/direct/yaffsfs.h).</li>\n</ul><p>Specify these options when compiling yaffs, i.e. -DCONFIG_YAFFS_DIRECT etc.</p>\n\n<h3>Configuring</h3>\n\n<p>You will then need to provide yaffs with configuration information. This includes details about the nand flash you are using and also tells yaffs which functions to call when when it wants to read/write/erase parts of the flash, these functions will form the bridge between yaffs and the underlying hardware driver. This customisation is done in yaffscfg.h. Within yaffscfg.h you will need to provide a number of operating-system-like functions and a function to initialise yaffs. For example providing functions for malloc and free. Here is a breakdown of those functions that need to be implemented.</p>\n\n<h3>Operating System Functions</h3>\n\n<p><code><code>void yaffsfs_SetError(int err); </code> </code></p>\n\n<p>Report system errors, for example using errno if it exists.</p>\n\n<p><code><code>void *yaffs_malloc(size_t size);</code> <code>void yaffs_free(void *ptr);</code> </code></p>\n\n<p>As for the standard malloc and free functions, if they already exist on your system then you can just shim them.</p>\n\n<p><code><code>void yaffsfs_LocalInitialisation(void);</code> <code>void yaffsfs_Lock(void);</code> <code>void yaffsfs_Unlock(void);</code> </code></p>\n\n<p>Use yaffsfs_LocalInitalisation to initialise \"Real Time Operating System\" state, if the system is multi-threaded then it should initialise a semaphore/mutex for use by lock and unlock. Lock/unlock should use the semaphore set up in LocalInitialisation to lock yaffs from multi-threaded access.</p>\n\n<p><code><code>__u32 yaffsfs_CurrentTime(void);</code> </code></p>\n\n<p>This can be any time increment of use to the system. If this is not required, then it is fine to just use a function that returns zero.</p>\n\n<h3>Yaffs Startup Function</h3>\n\n<p><code><code>int yaffs_StartUp(void); </code> </code></p>\n\n<p><code><code>Return value: YAFFS_OK or YAFFS_FAIL</code> </code></p>\n\n<p>This functions should be used to provide yaffs with many details about the properties of the underlying nand device. Within this function you will need to set up a \'yaffs_Device\' (yaffs_guts.h) and a \'yaffsfs_DeviceConfiguration\' (direct/yaffscfg.h). How to set up a yaffs device will follow in the next section. Once you have set up the required yaffs_Device structures you should call yaffs_initialise (yaffs_guts.h) with a pointer to a null terminated array of yaffs_DeviceConfiguration structures. A yaffs_DeviceConfiguration structure contains a pointer to a yaffs_Device and the \'mount point\' string (prefix) that that device corresponds to.</p>\n\n<h3>Yaffs Devices</h3>\n\n<p>A yaffs device is a logical device that represents part of or a whole physical device. You might think of it as a \'partition\' on the nand. For example, it might cover the whole of the nand device or perhaps only claim half, with another yaffs_Device claiming the other half. It may also be used so that you can use a device other than a flash device (e.g. RAM) for testing purposes.</p>\n\n<p>A yaffs_Device keeps track of the start and end block, so you may have more than one yaffs_Device corresponding to the same physical device by altering the start and end block of the yaffs device.</p>\n\n<p>The fields on the yaffs_Device struct that you need to set up yourself are listed below, all other fields are setup automatically by yaffs.</p>\n\n<p><code><code>int nDataBytesPerChunk</code> </code></p>\n\n<p>As the name suggests this is the number of bytes per chunk, remembering that in yaffs terminology a page is referred to as a chunk, this is then the number of bytes per page. This is the number of data bytes, that is the number of bytes excluding the OOB byte data. E.g. if a page is 2048byte + 64bytes of OOB then set nDataBytesPerChunk to 2048.</p>\n\n<p><code><code>int nChunksPerBlock </code> </code></p>\n\n<p>Straightforwardly the number of chunks (pages on the nand) in each block on the physical nand device. Must be at least 2.</p>\n\n<p><code><code>int spareBytesPerChunk</code></code><br />\nThis is the size of the spare area, i.e. the number of OOB bytes per chunk (page)<code>. </code></p>\n\n<p><code><code>int startBlock</code> </code></p>\n\n<p>The block number (not the address in bytes) on the chip of the first block of this logical yaffs_Device. Beware, yaffs needs the first block to be free so you should not set this to 0, if it is then yaffs will add on one to it itself and also add on one to the end block which could be an issue if you wanted your device to start at block 0 and finish at the last block which might mean yaffs trying to write to a non-existent block.</p>\n\n<p><code><code>int endBlock</code> </code></p>\n\n<p>The block number on the chip of the last block for this logical yaffs_Device. If startBlock == 0 then yaffs will use endBlock+1. Must be at least startBlock + nReservedBlocks + 2.</p>\n\n<p><code><code>int nReservedBlocks</code> </code></p>\n\n<p>This is then number of erasable blocks that Yaffs must keep in reserve for garbage collection and to cover for block failures. This must be a minimum of 2, but 5 or so is better. If you are using a medium that is not expected to fail (eg. RAM for a RAM disk, or a host file system emulation then 2 is OK).</p>\n\n<p><code><code>int nShortOpCaches</code> </code></p>\n\n<p>This configures the number of entries in the Yaffs cache for this device. A value of zero defeats the cache. A value of 10 to 20 is recommended for most systems. Cannon be any bigger than YAFFS_MAX_SHORT_OP_CACHES.</p>\n\n<p><code><code>int useNANDECC</code> </code></p>\n\n<p>This is a flag that tells yaffs whether it should be doing ECC calculations or if it should be left to the driver.</p>\n\n<p><code><code>void *genericDevice</code> </code></p>\n\n<p>This is a pointer which should point to any data that the underlying nand driver will need to know to write and read from the physical device.</p>\n\n<p><code><code>int isYaffs2</code> </code></p>\n\n<p>Are we using Yaffs2? We only deal with Yaffs2 in this document.</p>\n\n<p><code><code>int inbandTags</code> </code></p>\n\n<p>Is there an OOB section? If not then this should be true. Only relevant to Yaffs2.</p>\n\n<p><code><code>_u32 totalBytesPerChunk</code> </code></p>\n\n<p>Possibly a misleading name, it should be equal to nDataBytesPerChunk not nDataBytesPerChunk + spareBytesPerChunk as the name might suggest. If inbandTags is true then yaffs sets nDataBytesPerChunk such that there is enough space for the data yaffs would normally store in the spare area.</p>\n\n<p><code><code>write/readChunkWithTagsFromNAND, markNANDBlockBad, queryNANDBlock</code> </code></p>\n\n<p>These are all pointers to functions that you shall provide to provide Yaffs with a method of writing/reading etc from the NAND.</p>\n\n<h3>NAND access functions</h3>\n\n<p>If you are using Yaffs2 you need to provide pointers to functions that Yaffs can call to write and read from the nand. Example implementations of these function can be seen in yaffs_mtdif.c, these are the functions written to do the same job for the linux mtd layer and provides the write and read functions. The following functions return YAFFS_OK on success and YAFFS_FAIL on failure.</p>\n\n<p><code><code>int (*writeChunkWithTagsToNAND) (struct yaffs_DeviceStruct * dev,</code> <code>int chunkInNAND, const __u8 * data,</code> <code>const yaffs_ExtendedTags * tags);</code> <code>dev: yaffs_Device to write to.</code> <code>chunkInNAND: Which page to write the chunk to.</code> <code>Data: Pointer to the data to write</code> <code>tags: Unpacked OOB data.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This function is to write pages (chunks) to the nand. In this function you will probably want to first retrive any useful data that you put in dev-&gt;genericDevice (in the yaffs_StartUp function) and use it to call the function you wrote previously to write data to the nand. For yaffs2 data and tags should never be NULL. chunkInNand is the page number of the page to write to, not an address so it will need converting if that\'s what your underling functions to write to the nand expect.</p>\n\n<p>You will then need to pack the tags into a yaffs_PackedTags2 structure, this takes out the all relevant details from the yaffs_ExtendedTags tags structure and calculates ECC data on it before placing them in the packedtags2 structure. This structure is the OOB data you will want to write out to the nands spare area.</p>\n\n<p>How you write these out to the OOB data depends on your architecture, nand chips and therefore how bad block marking is done. If for example the first byte is used for bad block marking then simply writing the tags out after the first byte is acceptable. The ECC data in packed tags only covers error correction and detection for the tags in the OOB data, if you want ECC on the data then you must do that yourself.</p>\n\n<p>To perform ECC checks to the data bytes you may use the yaffs_ECCCalculate function which calculates ECC data for 256 byte sections of data. This function produces 3 bytes of ECC data per 256 bytes. Therefore for 2048 bytes of data in each page you would need (2048/256) * 3 = 8 * 3 = 24 extra bytes of ECC data. This can be written out after the bad block byte and packed tags data.<br />\n </p>\n\n<p><code><code>int (*readChunkWithTagsFromNAND) (struct yaffs_DeviceStruct * dev,</code> <code>int chunkInNAND, __u8 * data,</code> <code>yaffs_ExtendedTags * tags);</code> <code>dev: The yaffs_Device to read from.</code> <code>chunkInNAND: Which page to read from.</code> <code>Data: Pointer to a buffer to read data to.</code> <code>tags: Pointer to a buffer to unpacked OOB data into.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This function should do the opposite to the previous function. Firstly, read in the data and OOB bytes. Secondly place the data bytes in the area pointed to by data, then unpack the OOB bytes into into the pointer to tags using yaffs_UnpackTags2.</p>\n\n<p>Once the tags have been unpacked you should then recalculate the ECC data on the data bytes you just read back, just as you did for the write operation. Then use the recalculated ECC and the ECC data read out of the OOB bytes with yaffs_ECCCorrect to correct the data.</p>\n\n<p>Depending on the return value from yaffs_ECCCorrect you should set tags-&gt;eccResult to reflect whether anything was corrected or the correction failed. yaffs_UnpackTags2 also sets tags-&gt;eccResult so you should only update it if the result of the data correction is worse than is already there. i.e. if after the tags are unpacked and eccResult is YAFFS_ECC_RESULT_FIXED and ECC correction on the data read back resulted in no errors then you should leave unpackedtags2 and YAFFS_ECC_RESULT_FIXED and not set it to YAFFS_ECC_RESULT_NO_ERROR.</p>\n\n<p><code><code>int (*markNANDBlockBad) (struct yaffs_DeviceStruct * dev, int blockNo);</code> <code>dev: yaffs_Device to write to.</code> <code>blockNo: Which block to mark.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code></code></p>\n\n<p>This should mark the block bad. This probably means reading the OOB data and changing the relevant byte that marks the bad block, and writing the OOB data back.</p>\n\n<p><code><code>int (*queryNANDBlock) (struct yaffs_DeviceStruct * dev, int blockNo,</code> <code>yaffs_BlockState * state, __u32 *sequenceNumber);</code> <code>dev: The yaffs_Device to write to.</code> <code>blockNo: Which block to mark.</code> <code>state: Upon returning this should be set to the relevant state of this particular block.</code> <code>Sequence number: The Sequence number of this block. 0 if the block is unused.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This should check whether or not the block is valid.</p>\n\n<p>If the bad block marker is set in the OOB then *state should be set to YAFFS_BLOCK_STATE_DEAD *sequenceNumber set to 0, and return YAFFS_FAIL.</p>\n\n<p>If the block is not bad then the tags should be unpacked. After the tags are unpacked, and it is found that chunk is used (see tags.chunkUsed) *sequenceNumber should be set to tags.sequenceNumber and *state to YAFFS_BLOCK_STATE_NEEDS_SCANNING, otherwise if the block is not used then *sequenceNumber should be 0 and *state should be set to YAFFS_BLOCK_STATE_EMPTY.</p>\n\n<h3>Application Interface</h3>\n\n<p>The yaffs provides a number of functions for applications to interface with it. These are mostly the same as the standard clib open/close etc prefixed with yaffs_ eg yaffs_open. These functions are defined in direct/yaffsfs.h.</p>\n\n<p>To initialise yaffs so that reading and writing can be done, you must call yaffs mount for each yaffs device you would like to use, e.g. yaffs_mount(\"/boot\"). This could be done at system boot if there is an operating system present so that the application need to worry about this. You will also need to call yaffs_unmount when you have finished so that yaffs may write any state it needs to to disk.</p>\n\n<p>If there is already an application interface for reading and writing files you may shim the relevant function calls with the related operating system calls.</p>\n\n<p>E.g. simply doing #define open(path, oflag, mode) yaffs_open(path, oflag, mode)</p>\n\n<p>Or having something more complex to provide redirection functions if there is more than one file system present.</p>\n\n<p><code><code>For example: int open(const char *path,...)<br />\n{<br />\n//Determine which file system is being used </code> <code>if(it_is_a_yaffs_path(path)) {</code> <code> return yaffs_open(...);<br />\n} else {<br />\n// Do something else<br />\n}<br />\n}</code></code></p>\n\n<h2>Appendices</h2>\n\n<h3>Appendix A - Accessing the Balloon Source Code</h3>\n\n<p>The latest source code for the balloon board can be checked out from SVN. There is different code for different balloon versions. Details of getting the source and setting up tool chains is decribed in the following page <a href=\"http://www.balloonboard.org/software.html\">http://www.balloonboard.org/software.html</a>. If you just want to take a look at the latest mainline code then the following will give you what you want.</p>\n\n<p>svn checkout svn://balloonboard.org/balloon/trunk/</p>\n\n<p> </p></div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"MoCiVWnrWue89Oy9sBsFFC31bfVxassA2Y7DBl-wZzMPh3bL5WiEl794oUrHC49QKVpp8AmGhQ\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:49:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:31:\"config:filter.format.basic_html\";i:37;s:30:\"config:filter.format.full_html\";i:38;s:29:\"config:filter.format.raw_html\";i:39;s:22:\"config:search.settings\";i:40;s:26:\"config:system.menu.account\";i:41;s:23:\"config:system.menu.main\";i:42;s:24:\"config:system.menu.tools\";i:43;s:18:\"config:system.site\";i:44;s:8:\"node:369\";i:45;s:9:\"node_view\";i:46;s:6:\"user:0\";i:47;s:6:\"user:5\";i:48;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:18:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:66:\"Yaffs Porting Guide | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:11:\"description\";s:7:\"content\";s:181:\"The purpose of this document is to describe how to bring up Yaffs2 on a board previously unsupported using the Yaffs Direct Interface, with an example using eCos on a Balloon board.\";}}i:1;s:11:\"description\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:4;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:5;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:6;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:9;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:17;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:20:\"/yaffs-porting-guide\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/369\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:20:\"/yaffs-porting-guide\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"MoCiVWnrWue89Oy9sBsFFC31bfVxassA2Y7DBl-wZzMPh3bL5WiEl794oUrHC49QKVpp8AmGhQ\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"MoCiVWnrWue89Oy9sBsFFC31bfVxassA2Y7DBl-wZzMPh3bL5WiEl794oUrHC49QKVpp8AmGhQ\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"MoCiVWnrWue89Oy9sBsFFC31bfVxassA2Y7DBl-wZzMPh3bL5WiEl794oUrHC49QKVpp8AmGhQ\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"MoCiVWnrWue89Oy9sBsFFC31bfVxassA2Y7DBl-wZzMPh3bL5WiEl794oUrHC49QKVpp8AmGhQ\">\";}}}}',-1,1510663231.575,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.basic_html config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:369 node_view rendered user:0 user:5','2759'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical03f95bd4fc3f1f1da67a11d9f12a8c3d444895c5b366caf0867d95c262944432:[theme]=yaffs:[timezone]=Europe/London:[url]=https://lMNIgyqEbT2fkyLi1k4LvD1YdWfK0aKowp8gXJ5R8Ro','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:49:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:31:\"config:filter.format.basic_html\";i:37;s:30:\"config:filter.format.full_html\";i:38;s:29:\"config:filter.format.raw_html\";i:39;s:22:\"config:search.settings\";i:40;s:26:\"config:system.menu.account\";i:41;s:23:\"config:system.menu.main\";i:42;s:24:\"config:system.menu.tools\";i:43;s:18:\"config:system.site\";i:44;s:8:\"node:369\";i:45;s:9:\"node_view\";i:46;s:8:\"rendered\";i:47;s:6:\"user:0\";i:48;s:6:\"user:5\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Mon, 20 Nov 2017 23:30:09 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:42053:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"Rb-tIScFhnLUQk2nqehOEplp919lZHbCgwj4219BTC-Sw9orWOt5Fjv7rRtGxVEeIfQLWGa2xw\">\n    <title>Yaffs Porting Guide | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"Rb-tIScFhnLUQk2nqehOEplp919lZHbCgwj4219BTC-Sw9orWOt5Fjv7rRtGxVEeIfQLWGa2xw\">\n    <js-placeholder token=\"Rb-tIScFhnLUQk2nqehOEplp919lZHbCgwj4219BTC-Sw9orWOt5Fjv7rRtGxVEeIfQLWGa2xw\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-page navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span property=\"schema:name\">Yaffs Porting Guide</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-porting-guide\" typeof=\"schema:WebPage\" class=\"page full clearfix\">\n\n  \n      <span property=\"schema:name\" content=\"Yaffs Porting Guide\" class=\"hidden\"></span>\n\n\n  \n  <div class=\"content\">\n    \n            <div property=\"schema:text\" class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>version 2.0</p>\n\n<p>Last changed: rrw@kynesim.co.uk, 2009-03-20<br />\n </p>\n\n<h3>Purpose</h3>\n\n<p>The purpose of this document is to describe how to bring up Yaffs2 on a board previously unsupported using the Yaffs Direct Interface, with an example using eCos on a Balloon board.</p>\n\n<p>Before we start you probably want to have the data sheet for the NAND chips you are using in front you so that you can refer to it as we go along.</p>\n\n<h3>Background and NAND Flash Properties</h3>\n\n<p>NAND flash is generally arranged in <em>pages</em> and <em>blocks</em>. A page contains a section of data bytes and then a section of out-of-band (<em>OOB</em>) data bytes. Blocks contain a number of pages .<br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram\" height=\"335\" src=\"/sites/yaffs.net/files/images/yaffs_porting_guide_html_2de490f8.png\" width=\"783\" /></a></p>\n\n<p>The OOB section of each page is used keep track of various things like file system state, error correction data and bad block marking.</p>\n\n<p>NAND flash is programmed (written to) and read on a largely page basis (though with some level of random access) and is erased on a block basis. That is, to erase a page, you must erase the rest of the containing block along with it.</p>\n\n<p>When programming NAND flash only 1\'s can be programmed to 0\'s, so to change a byte containing 0x00 to 0xFF it must be erased, along with the rest of the block. However subsequent programs may still be made without an erase if no 0s are to be changed to 1s, this might be useful in a scenario where subsequent data might regularly have this property.</p>\n\n<p>When manufactured NAND flash contains bad blocks, these are blocks that are not reliable and any data in them will commonly corrupt easily. These must be kept track of and the OOB data section is used to mark a bad block.</p>\n\n<p>NAND in general is prone to bit errors and for that reason the OOB data is also used to write error correction codes (ECC) so that some errors can be corrected.</p>\n\n<h3>Yaffs NAND Model</h3>\n\n<p>It is probably a good thing to detail at this point how Yaffs2 expects the NAND to behave so that you are aware of what you have to provide in the NAND driver to get YAFF running. Yaffs uses some different terminology in that it refers to a page as a <em>chunk</em>.</p>\n\n<p>Yaffs2 uses a fairly abstract model for NAND flash, this allows a lot of flexibility in the way Yaffs can be used. Yaffs is designed for NAND flash and makes the following assumptions and definitions:</p>\n\n<ul><li>NAND flash is arranged in blocks. Each block is the same size and comprises an integer number of chunks. Each block is treated as a single erasable item.</li>\n	<li>A page (chunk) equates to the allocation units of flash.</li>\n	<li>All accesses (reads and writes) are page (chunk) aligned.</li>\n	<li>When programming a NAND flash, only the zero bits in the pattern being programmed are relevant, and one bits are \"don\'t care\". For example, if a byte already contains the binary pattern 1010, then programming 1001 will result in the pattern which is the logical AND of these two patterns i.e. 1000. This is different to NOR flash.</li>\n</ul><p>Yaffs identifies blocks by their block number and chunks by their chunk Id. Yaffs treats a blank (0xFF filled) block as being free or erased. Thus, the equivalent of formatting for a Yaffs partition is to erase all the blocks that are not bad.</p>\n\n<p>Therefore Yaffs minimally needs access to functions that enable it to erase blocks and to read and write on a page basis. It is also helpful to be able to read only OOB data as reading/writing a full page to only view/update OOB data will cost many serial read cycles over the bus. This is an overhead that can be avoided using the random access read and write features of some nand chips.</p>\n\n<p> </p>\n\n<h2>Writing a Driver for NAND flash Chips</h2>\n\n<h3>Writing a Driver for the Samsung 628 K9F2G08U0M PCB0 on the Balloon Board (v3.01)</h3>\n\n<p>For the Balloon board the NAND chips hang off the CPLD which is in turn hooked up to the system bus. This is quite board specific and in this case reading the VHDL code reveals how to change the values on the pins of the NAND chips. You may look at the code by downloading the balloon source code (Appendix A) and looking at balloon3.vhd and Balloon_nand.vhd in balloon/vhdl/fpga/.</p>\n\n<p>It will be likely that this is significantly different on your platform and you should consult the relevant data sheets and documentation to determine how to access the NAND hardware on your board. I will present an example of the balloon board in order to give an overview of the kind of thing that is required.</p>\n\n<p>On the Balloon the CPLD routes data on the bus with certain address to the logic on the CPLD that actually controls the flash chips. They are as follows:</p>\n\n<p><code>NAND Data Bus : 0x10e00000</code> <code>NAND Control 2: 0x10e00010</code> <code>NAND Control : 0x10e00014</code></p>\n\n<p>Sending data to the \'NAND Data Bus\' address will put that data onto the I/O pins of the NAND chips. All of the nand chips are hooked up to the same pins on the CPLD so writing to the \'NAND Data Bus\' address will put the value written on the I/O pins for <em>all</em> of the available flash chips. To isolate the chip you want to work with using the chip enable pin on each flash chip.</p>\n\n<p>This is done by writing to the \'NAND Control\' (0x10e00014) address. When writing to \'NAND control\', the CPLD takes the data value on the bus and routes each bit to a different wire. This bit field is structured as follows:</p>\n\n<p> </p>\n\n<table><colgroup><col /><col /></colgroup><tr><td><em>Pin Attached To</em></td>\n			<td><em>Bit in NAND Control value</em></td>\n		</tr><tr><td>CLE (Control Latch Enable)</td>\n			<td>0</td>\n		</tr><tr><td>ALE (Address Latch Enable)</td>\n			<td>1</td>\n		</tr><tr><td>nCE0 (not Chip Enable for chip 0)</td>\n			<td>2</td>\n		</tr><tr><td>nCE1 (for chip 1)</td>\n			<td>3</td>\n		</tr><tr><td>nCE2 (for chip 2)</td>\n			<td>4</td>\n		</tr><tr><td>nCE3 (for chip 3)</td>\n			<td>5</td>\n		</tr><tr><td>nSE (not Chip Enable for chip 0)</td>\n			<td>6</td>\n		</tr><tr><td>nWP (not Write Protect)</td>\n			<td>7</td>\n		</tr></table><p> </p>\n\n<p>So for example bit 1 on the data lines is put onto the ALE pin on the physical chip. Bits prefixed with \'n\' are active low, for example chip 0 is selected when nCE0 is low and nCE1-3 are high.</p>\n\n<p> </p>\n\n<p>So writing to \'NAND Control\' we can change the values of the pins on the flash. Again, CLE, ALE, nSE and nWP change the value of the corresponding pin on all the flash chips available, nCE[0-3] will select the chip you are using.</p>\n\n<p>Finally, NAND flash typically comes in couple of flavours, 8 bit wide (x8) and 16 bit wide (x16). This means that x8 chips have 8 I/O pins and x16 have 16. The logic on the CPLD on the Balloon can handle both if you tell it which you are currently dealing with. Writing to \'NAND Control 2\' a value of 1 puts the CPLD logic for the NAND chips into x8 mode and 0 into x16 mode. I will assume for the rest of this document that there are only x8 chips connected to the balloon but it should be fairly trivial to extend it to support both.</p>\n\n<h3>Using the Flash Chips</h3>\n\n<p>The flash chips we\'re using have a number of commands, each triggered by a sequence of one or two command codes. You will want to refer to the data sheets for precise details of these functions, but I will briefly describe some of them in this document. The command set that we have for the particular chip we\'re using is table 1 on page 7 of the data sheet.</p>\n\n<p>To input a command there is generally one or two command input cycles. For two cycle commands there is generally an initial command followed by some data needed to complete the command then another command cycle to notify that the relevant data has been input and to start execution. For example for read operations the command 0x00 is latched in followed by some address input cycles followed by the command 0x30 to start the operation. With this in mind I will now describe how to input commands, the \'Command Latch Cycle\'.</p>\n\n<p>Note that for this section I have assumed that the bus is sufficiently slow that the set-up and hold times are not an issue, if you have a fast bus then you may have to wait for a small amount of time (refer to the data sheet) after changing values on the pins (by writing to the correct address) so that set-up and hold times are not violated.</p>\n\n<h3>Command Latch Cycle</h3>\n\n<p>For the command latch cycle you need to first select a chip by setting the relevant nCE low and then you need to set the CLE bit high, that means writing to the \'NAND Control\' address. ALE must also be low and should be set at the same time as CLE. It is then a case of putting the command value onto the I/O pins by writing to the \'NAND Data Bus\' address the value of the command you want. This will then latch in the command, afterwards you will need to clear the CLE bit again.</p>\n\n<p>You will also notice from looking at the data sheet that something needs to be done with the nWE (not <strong>w</strong>rite <strong>e</strong>nable) pin (specifically it should be low while latching in the command), but that I have yet to describe a mechanism for changing its value. This is because it is dealt with by the logic in the CPLD and whenever data is sent to the data address the CPLD will toggle nWE appropriately. (This is also true of nRE (not <strong>r</strong>ead <strong>e</strong>nable) when reading). This process is implemented in the nand_chip_select and the send_command functions (flash.c).</p>\n\n<h3>Address Latch Cycle and Addressing</h3>\n\n<p>The process for the Address Latch Cycle is similar to that for command latching (with the sense of ALE and CLE reversed) and can be looked at in the data sheet and is implemented in send_address in flash.c. The addressing is done by row and column. There are 5 address cycles on the flash chips we\'re looking at. The first cycle contains bits 0-7 of the column address, the second bits 8-11 with the remaining bits of the byte to be sent low. The row address is over 3 more cycles in a similar fashion.</p>\n\n<p>You may wish to chose to address the individual bytes of the chip with the OOB data not directly addressable. This has enabled me to lump several chips into the same address space and select the correct chip based on the address. Addresses then need to be converted to row and column. You should also check that they are page/block aligned in the relevant places if that\'s what your functions expect. It needn\'t be done this way any you could use page numbers instead of bytes just as easily.</p>\n\n<p><br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram 2\" height=\"209\" src=\"sites/yaffs.net/files/images/yaffs_porting_guide_html_m11b1f893.png\" width=\"654\" /></a></p>\n\n<p> </p>\n\n<p>The \'row\' is essentially the page index and the \'column\' is the index into to that page, so if you wanted to read from the start of page 213 you would send 0 for the column and 213 for the row. Conversely if you wanted just the OOB bytes from the same page you would send a column value of 2048 (given a page size of 2048+64 bytes).</p>\n\n<p><br /><a href=\"/yaffs-embedded-structure\"><img alt=\"YAFFS porting guide diagram 3\" height=\"271\" src=\"sites/yaffs.net/files/images/yaffs_porting_guide_html_m4650262f.png\" width=\"347\" /></a></p>\n\n<p> </p>\n\n<h3>Finding Chip information</h3>\n\n<p>You will then need to find out which chips are active (e.g. on the balloon there are 4 possible chips, not all of which will exist) and what type of chips they are. For this there is the \'Read ID\' operation. This operation is implemented in the read_ids function in flash.c. The result of the operation gives the manufacturer and device code of the chip and information about the chip (page size, block size, oob size etc). To find which chips are available, loop through the possible chips and start a Read ID command on each of them, if the expected data is returned then there is a chip at that location.</p>\n\n<p>The operation is started by sending the command 0x90 and then one address cycle of 0x00. There are then 5 read cycles which give you data about the device. A description of how to unpack this information from the returned bytes is located on page 32 of the data sheet for the chip described here.</p>\n\n<p>This then gives you how many chips you have and what layout the data in them has.</p>\n\n<h3>Bad Block Checking</h3>\n\n<p>Contained within a nand chip are blocks that the manufacturer will not guarantee the reliability of (this is to increase yield in manufacturing) and so bad blocks must be kept track of. The Samsung chips come with the first byte (or word for x16) of the first and second page of each bad block not programmed as 0xFF.</p>\n\n<p>This bad block marking should be maintained and should be added to in the same way when a bad block is is discovered. Yaffs will expect you to provide a function it can call to mark a particular block as bad when yaffs decides it is necessary.</p>\n\n<p>Yaffs keeps track of bad blocks itself so that the driver doesn\'t need to worry about masking out bad blocks.</p>\n\n<h3>Erasing a Block</h3>\n\n<p>An example of this operation is given in nand_erase_block in flash.c. If you are addressing the nand by bytes then you must first check that the address is aligned to the start of a block and then convert the address into a block number. If there is more than one chip this will involve working out which chip the address refers to and then selecting the correct chip. This can be seen in the select_chip function in flash.c. You must then send the first command cycle for the erase operation before sending 3 cycles of address and then finally the last command cycle.</p>\n\n<p>For the erase operation the 3 address cycles are different than for the read/write operations. Only address bits A18 to A29 is valid (for x8) while A12 to A17 is ignored. In terms of the ordinary 5 cycles address input you only need to deal with the last 3 cycles and of those only the highest 2 bits of the 3rd cycle are used and the full 4th and 5th cycle are used.</p>\n\n<p>Once the operation has been started the program can check the progress of the operation by sending a command of 70h. Each subsequent read will contain the read status. The driver should wait until the read is complete (by the read status operation), the read status operation also contains information about whether the erase failed and this information should be returned from the function doing the erase.</p>\n\n<h3>Reading a Page</h3>\n\n<p>Reading a page is performed by first selecting the correct chip and then converting the address to a row and column number. You can then sending the first command cycle for the read operation followed by 5 address cycles as described in the previous sections. The second command cycle then starts the read operation. The driver must then wait for the data to be retrieved into the data registers on the NAND before they can be read out over the bus. For the example chip this is 25us, consult the data sheet as this may differ. The data can then be read out sequentially byte by byte until all the data needed is obtained.</p>\n\n<h3>Writing a Page</h3>\n\n<p>Page program operations are performed by first selecting the correct chip converting the address to row and column numbers. The page program operation is initiated by the relevant fist command latch cycle (command 0x80) followed by an address latch cycle (as for read), serial data loading and then the second command latch cycle (command 0x10).</p>\n\n<p>The serial data loading is done by serially writing data to the I/O pins. Up to 2112 bytes (x8) can be loaded into the data registers. Once the second command cycle is sent the program is initiated and there is then a programming period where the loaded data is programmed into the appropriate cell. The driver should wait for this to complete by issuing a read status command (0x70) and monitoring the R/nB (ready / not busy) bit. The R/nB flag is on I/O pin 6 and can be checked by repeatedly reading from the \'NAND Data Bus\' address. Once the operation is complete the Write Status Bit (I/O 0 ) may be checked to confirm that the operation was successful.</p>\n\n<h2>Yaffs</h2>\n\n<h3>How To Use Yaffs</h3>\n\n<h3>Checking Out From Git</h3>\n\n<p>The first thing to do is to obtain the source code for Yaffs. This can be done from CVS, details of the process can be found at <a href=\"http://www.yaffs.net/download-yaffs-using-git\">http://www.yaffs.net/download-yaffs-using-git</a>.</p>\n\n<p>The following command will checkout the latest Git version using public read-only access, if you are using bash.</p>\n\n<p><code>$ </code>git clone git://www.aleph1.co.uk/yaffs2 </p>\n\n<h3>Making Some Tweaks to the Source Code</h3>\n\n<p>As of the latest version from CVS in January 2009, you will need to make a small number of changes before you can compile the source code without errors and warnings. There is a patch file included with this document.</p>\n\n<p>You will need to provide a definition of loff_t (in yaffs2/direct/ydirectenv.h) this is for holding the file size in bytes, you should make it big enough to hold the largest file size you wish to support. Unsigned long is probably a good place to start. You will need to edit yaffsfs.c to change a #if to a #ifdef. Then if you have the relevant warnings and -Werror switched on you will need to correct a couple of printf format strings to get the type right (changing a few \'%d\' to \'%ld\').</p>\n\n<p><code>change yaffs/ydirectenv.h </code></p>\n\n<p><code>+ typedef unsigned long loff_t; </code></p>\n\n<p><code>change yaffs2/direct/yaffsfs.c ~line 1117 </code></p>\n\n<p><code>- #if CONFIG_YAFFS_WINCE </code></p>\n\n<p><code>+ #ifdef CONFIG_YAFFS_WINCE</code></p>\n\n<h3>Relevant Files to the Direct Interface</h3>\n\n<p>There are quite a few files that get checked out, not all of which you will need to get going with the yaffs direct interface. The ones you will actually need are listed bellow, you do not need to compile the rest in.</p>\n\n<p><code><code>direct/yaffsfs.c </code></code></p>\n\n<p><code><code>yaffs_guts.c </code></code></p>\n\n<p><code><code>direct/yaffscfg.c </code></code></p>\n\n<p><code><code>yaffs_nand.c </code></code></p>\n\n<p><code><code>yaffs_tagsvalidity.c </code></code></p>\n\n<p><code><code>yaffs_checkptrw.c </code></code></p>\n\n<p><code><code>yaffs_qsort.c </code></code></p>\n\n<p><code><code>yaffs_tagscompat.c </code></code></p>\n\n<p><code><code>yaffs_ecc.c </code></code></p>\n\n<p><code><code>yaffs_packedtags2.c</code></code></p>\n\n<h3>Some Relevant Preprocessor Flags</h3>\n\n<p>There are many different configuration options for yaffs, here are a few that you should be aware of for using the yaffs direct interface.</p>\n\n<ul><li>CONFIG_YAFFS_DIRECT - Tell yaffs to use the direct interface.</li>\n	<li>CONFIG_YAFFS_YAFFS2 - Tell yaffs we want to use yaffs2</li>\n	<li>CONFIG_YAFFS_PROVIDE_DEFS - provides some definitions for file types and #includes linux/types.h, linux/fs.h, linux/stat.h (see yaffs2/devextras.h).</li>\n	<li>CONFIG_YAFFSFS_PROVIDE_VALUES - This may be used so that you can customise error values and constants like O_RDONLY to match the underlying system values, if itis not defined then it includes errno.h,sys/stat.h and fcntl.h (see yaffs2/direct/yaffsfs.h).</li>\n</ul><p>Specify these options when compiling yaffs, i.e. -DCONFIG_YAFFS_DIRECT etc.</p>\n\n<h3>Configuring</h3>\n\n<p>You will then need to provide yaffs with configuration information. This includes details about the nand flash you are using and also tells yaffs which functions to call when when it wants to read/write/erase parts of the flash, these functions will form the bridge between yaffs and the underlying hardware driver. This customisation is done in yaffscfg.h. Within yaffscfg.h you will need to provide a number of operating-system-like functions and a function to initialise yaffs. For example providing functions for malloc and free. Here is a breakdown of those functions that need to be implemented.</p>\n\n<h3>Operating System Functions</h3>\n\n<p><code><code>void yaffsfs_SetError(int err); </code> </code></p>\n\n<p>Report system errors, for example using errno if it exists.</p>\n\n<p><code><code>void *yaffs_malloc(size_t size);</code> <code>void yaffs_free(void *ptr);</code> </code></p>\n\n<p>As for the standard malloc and free functions, if they already exist on your system then you can just shim them.</p>\n\n<p><code><code>void yaffsfs_LocalInitialisation(void);</code> <code>void yaffsfs_Lock(void);</code> <code>void yaffsfs_Unlock(void);</code> </code></p>\n\n<p>Use yaffsfs_LocalInitalisation to initialise \"Real Time Operating System\" state, if the system is multi-threaded then it should initialise a semaphore/mutex for use by lock and unlock. Lock/unlock should use the semaphore set up in LocalInitialisation to lock yaffs from multi-threaded access.</p>\n\n<p><code><code>__u32 yaffsfs_CurrentTime(void);</code> </code></p>\n\n<p>This can be any time increment of use to the system. If this is not required, then it is fine to just use a function that returns zero.</p>\n\n<h3>Yaffs Startup Function</h3>\n\n<p><code><code>int yaffs_StartUp(void); </code> </code></p>\n\n<p><code><code>Return value: YAFFS_OK or YAFFS_FAIL</code> </code></p>\n\n<p>This functions should be used to provide yaffs with many details about the properties of the underlying nand device. Within this function you will need to set up a \'yaffs_Device\' (yaffs_guts.h) and a \'yaffsfs_DeviceConfiguration\' (direct/yaffscfg.h). How to set up a yaffs device will follow in the next section. Once you have set up the required yaffs_Device structures you should call yaffs_initialise (yaffs_guts.h) with a pointer to a null terminated array of yaffs_DeviceConfiguration structures. A yaffs_DeviceConfiguration structure contains a pointer to a yaffs_Device and the \'mount point\' string (prefix) that that device corresponds to.</p>\n\n<h3>Yaffs Devices</h3>\n\n<p>A yaffs device is a logical device that represents part of or a whole physical device. You might think of it as a \'partition\' on the nand. For example, it might cover the whole of the nand device or perhaps only claim half, with another yaffs_Device claiming the other half. It may also be used so that you can use a device other than a flash device (e.g. RAM) for testing purposes.</p>\n\n<p>A yaffs_Device keeps track of the start and end block, so you may have more than one yaffs_Device corresponding to the same physical device by altering the start and end block of the yaffs device.</p>\n\n<p>The fields on the yaffs_Device struct that you need to set up yourself are listed below, all other fields are setup automatically by yaffs.</p>\n\n<p><code><code>int nDataBytesPerChunk</code> </code></p>\n\n<p>As the name suggests this is the number of bytes per chunk, remembering that in yaffs terminology a page is referred to as a chunk, this is then the number of bytes per page. This is the number of data bytes, that is the number of bytes excluding the OOB byte data. E.g. if a page is 2048byte + 64bytes of OOB then set nDataBytesPerChunk to 2048.</p>\n\n<p><code><code>int nChunksPerBlock </code> </code></p>\n\n<p>Straightforwardly the number of chunks (pages on the nand) in each block on the physical nand device. Must be at least 2.</p>\n\n<p><code><code>int spareBytesPerChunk</code></code><br />\nThis is the size of the spare area, i.e. the number of OOB bytes per chunk (page)<code>. </code></p>\n\n<p><code><code>int startBlock</code> </code></p>\n\n<p>The block number (not the address in bytes) on the chip of the first block of this logical yaffs_Device. Beware, yaffs needs the first block to be free so you should not set this to 0, if it is then yaffs will add on one to it itself and also add on one to the end block which could be an issue if you wanted your device to start at block 0 and finish at the last block which might mean yaffs trying to write to a non-existent block.</p>\n\n<p><code><code>int endBlock</code> </code></p>\n\n<p>The block number on the chip of the last block for this logical yaffs_Device. If startBlock == 0 then yaffs will use endBlock+1. Must be at least startBlock + nReservedBlocks + 2.</p>\n\n<p><code><code>int nReservedBlocks</code> </code></p>\n\n<p>This is then number of erasable blocks that Yaffs must keep in reserve for garbage collection and to cover for block failures. This must be a minimum of 2, but 5 or so is better. If you are using a medium that is not expected to fail (eg. RAM for a RAM disk, or a host file system emulation then 2 is OK).</p>\n\n<p><code><code>int nShortOpCaches</code> </code></p>\n\n<p>This configures the number of entries in the Yaffs cache for this device. A value of zero defeats the cache. A value of 10 to 20 is recommended for most systems. Cannon be any bigger than YAFFS_MAX_SHORT_OP_CACHES.</p>\n\n<p><code><code>int useNANDECC</code> </code></p>\n\n<p>This is a flag that tells yaffs whether it should be doing ECC calculations or if it should be left to the driver.</p>\n\n<p><code><code>void *genericDevice</code> </code></p>\n\n<p>This is a pointer which should point to any data that the underlying nand driver will need to know to write and read from the physical device.</p>\n\n<p><code><code>int isYaffs2</code> </code></p>\n\n<p>Are we using Yaffs2? We only deal with Yaffs2 in this document.</p>\n\n<p><code><code>int inbandTags</code> </code></p>\n\n<p>Is there an OOB section? If not then this should be true. Only relevant to Yaffs2.</p>\n\n<p><code><code>_u32 totalBytesPerChunk</code> </code></p>\n\n<p>Possibly a misleading name, it should be equal to nDataBytesPerChunk not nDataBytesPerChunk + spareBytesPerChunk as the name might suggest. If inbandTags is true then yaffs sets nDataBytesPerChunk such that there is enough space for the data yaffs would normally store in the spare area.</p>\n\n<p><code><code>write/readChunkWithTagsFromNAND, markNANDBlockBad, queryNANDBlock</code> </code></p>\n\n<p>These are all pointers to functions that you shall provide to provide Yaffs with a method of writing/reading etc from the NAND.</p>\n\n<h3>NAND access functions</h3>\n\n<p>If you are using Yaffs2 you need to provide pointers to functions that Yaffs can call to write and read from the nand. Example implementations of these function can be seen in yaffs_mtdif.c, these are the functions written to do the same job for the linux mtd layer and provides the write and read functions. The following functions return YAFFS_OK on success and YAFFS_FAIL on failure.</p>\n\n<p><code><code>int (*writeChunkWithTagsToNAND) (struct yaffs_DeviceStruct * dev,</code> <code>int chunkInNAND, const __u8 * data,</code> <code>const yaffs_ExtendedTags * tags);</code> <code>dev: yaffs_Device to write to.</code> <code>chunkInNAND: Which page to write the chunk to.</code> <code>Data: Pointer to the data to write</code> <code>tags: Unpacked OOB data.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This function is to write pages (chunks) to the nand. In this function you will probably want to first retrive any useful data that you put in dev-&gt;genericDevice (in the yaffs_StartUp function) and use it to call the function you wrote previously to write data to the nand. For yaffs2 data and tags should never be NULL. chunkInNand is the page number of the page to write to, not an address so it will need converting if that\'s what your underling functions to write to the nand expect.</p>\n\n<p>You will then need to pack the tags into a yaffs_PackedTags2 structure, this takes out the all relevant details from the yaffs_ExtendedTags tags structure and calculates ECC data on it before placing them in the packedtags2 structure. This structure is the OOB data you will want to write out to the nands spare area.</p>\n\n<p>How you write these out to the OOB data depends on your architecture, nand chips and therefore how bad block marking is done. If for example the first byte is used for bad block marking then simply writing the tags out after the first byte is acceptable. The ECC data in packed tags only covers error correction and detection for the tags in the OOB data, if you want ECC on the data then you must do that yourself.</p>\n\n<p>To perform ECC checks to the data bytes you may use the yaffs_ECCCalculate function which calculates ECC data for 256 byte sections of data. This function produces 3 bytes of ECC data per 256 bytes. Therefore for 2048 bytes of data in each page you would need (2048/256) * 3 = 8 * 3 = 24 extra bytes of ECC data. This can be written out after the bad block byte and packed tags data.<br />\n </p>\n\n<p><code><code>int (*readChunkWithTagsFromNAND) (struct yaffs_DeviceStruct * dev,</code> <code>int chunkInNAND, __u8 * data,</code> <code>yaffs_ExtendedTags * tags);</code> <code>dev: The yaffs_Device to read from.</code> <code>chunkInNAND: Which page to read from.</code> <code>Data: Pointer to a buffer to read data to.</code> <code>tags: Pointer to a buffer to unpacked OOB data into.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This function should do the opposite to the previous function. Firstly, read in the data and OOB bytes. Secondly place the data bytes in the area pointed to by data, then unpack the OOB bytes into into the pointer to tags using yaffs_UnpackTags2.</p>\n\n<p>Once the tags have been unpacked you should then recalculate the ECC data on the data bytes you just read back, just as you did for the write operation. Then use the recalculated ECC and the ECC data read out of the OOB bytes with yaffs_ECCCorrect to correct the data.</p>\n\n<p>Depending on the return value from yaffs_ECCCorrect you should set tags-&gt;eccResult to reflect whether anything was corrected or the correction failed. yaffs_UnpackTags2 also sets tags-&gt;eccResult so you should only update it if the result of the data correction is worse than is already there. i.e. if after the tags are unpacked and eccResult is YAFFS_ECC_RESULT_FIXED and ECC correction on the data read back resulted in no errors then you should leave unpackedtags2 and YAFFS_ECC_RESULT_FIXED and not set it to YAFFS_ECC_RESULT_NO_ERROR.</p>\n\n<p><code><code>int (*markNANDBlockBad) (struct yaffs_DeviceStruct * dev, int blockNo);</code> <code>dev: yaffs_Device to write to.</code> <code>blockNo: Which block to mark.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code></code></p>\n\n<p>This should mark the block bad. This probably means reading the OOB data and changing the relevant byte that marks the bad block, and writing the OOB data back.</p>\n\n<p><code><code>int (*queryNANDBlock) (struct yaffs_DeviceStruct * dev, int blockNo,</code> <code>yaffs_BlockState * state, __u32 *sequenceNumber);</code> <code>dev: The yaffs_Device to write to.</code> <code>blockNo: Which block to mark.</code> <code>state: Upon returning this should be set to the relevant state of this particular block.</code> <code>Sequence number: The Sequence number of this block. 0 if the block is unused.</code> <code>Return: YAFFS_OK / YAFFS_FAIL</code> </code></p>\n\n<p>This should check whether or not the block is valid.</p>\n\n<p>If the bad block marker is set in the OOB then *state should be set to YAFFS_BLOCK_STATE_DEAD *sequenceNumber set to 0, and return YAFFS_FAIL.</p>\n\n<p>If the block is not bad then the tags should be unpacked. After the tags are unpacked, and it is found that chunk is used (see tags.chunkUsed) *sequenceNumber should be set to tags.sequenceNumber and *state to YAFFS_BLOCK_STATE_NEEDS_SCANNING, otherwise if the block is not used then *sequenceNumber should be 0 and *state should be set to YAFFS_BLOCK_STATE_EMPTY.</p>\n\n<h3>Application Interface</h3>\n\n<p>The yaffs provides a number of functions for applications to interface with it. These are mostly the same as the standard clib open/close etc prefixed with yaffs_ eg yaffs_open. These functions are defined in direct/yaffsfs.h.</p>\n\n<p>To initialise yaffs so that reading and writing can be done, you must call yaffs mount for each yaffs device you would like to use, e.g. yaffs_mount(\"/boot\"). This could be done at system boot if there is an operating system present so that the application need to worry about this. You will also need to call yaffs_unmount when you have finished so that yaffs may write any state it needs to to disk.</p>\n\n<p>If there is already an application interface for reading and writing files you may shim the relevant function calls with the related operating system calls.</p>\n\n<p>E.g. simply doing #define open(path, oflag, mode) yaffs_open(path, oflag, mode)</p>\n\n<p>Or having something more complex to provide redirection functions if there is more than one file system present.</p>\n\n<p><code><code>For example: int open(const char *path,...)<br />\n{<br />\n//Determine which file system is being used </code> <code>if(it_is_a_yaffs_path(path)) {</code> <code> return yaffs_open(...);<br />\n} else {<br />\n// Do something else<br />\n}<br />\n}</code></code></p>\n\n<h2>Appendices</h2>\n\n<h3>Appendix A - Accessing the Balloon Source Code</h3>\n\n<p>The latest source code for the balloon board can be checked out from SVN. There is different code for different balloon versions. Details of getting the source and setting up tool chains is decribed in the following page <a href=\"http://www.balloonboard.org/software.html\">http://www.balloonboard.org/software.html</a>. If you just want to take a look at the latest mainline code then the following will give you what you want.</p>\n\n<p>svn checkout svn://balloonboard.org/balloon/trunk/</p>\n\n<p> </p></div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"Rb-tIScFhnLUQk2nqehOEplp919lZHbCgwj4219BTC-Sw9orWOt5Fjv7rRtGxVEeIfQLWGa2xw\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:49:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:31:\"config:filter.format.basic_html\";i:37;s:30:\"config:filter.format.full_html\";i:38;s:29:\"config:filter.format.raw_html\";i:39;s:22:\"config:search.settings\";i:40;s:26:\"config:system.menu.account\";i:41;s:23:\"config:system.menu.main\";i:42;s:24:\"config:system.menu.tools\";i:43;s:18:\"config:system.site\";i:44;s:8:\"node:369\";i:45;s:9:\"node_view\";i:46;s:6:\"user:0\";i:47;s:6:\"user:5\";i:48;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:18:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:66:\"Yaffs Porting Guide | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:11:\"description\";s:7:\"content\";s:181:\"The purpose of this document is to describe how to bring up Yaffs2 on a board previously unsupported using the Yaffs Direct Interface, with an example using eCos on a Balloon board.\";}}i:1;s:11:\"description\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:4;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:5;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:6;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:9;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:17;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:20:\"/yaffs-porting-guide\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/369\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:20:\"/yaffs-porting-guide\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"Rb-tIScFhnLUQk2nqehOEplp919lZHbCgwj4219BTC-Sw9orWOt5Fjv7rRtGxVEeIfQLWGa2xw\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"Rb-tIScFhnLUQk2nqehOEplp919lZHbCgwj4219BTC-Sw9orWOt5Fjv7rRtGxVEeIfQLWGa2xw\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"Rb-tIScFhnLUQk2nqehOEplp919lZHbCgwj4219BTC-Sw9orWOt5Fjv7rRtGxVEeIfQLWGa2xw\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"Rb-tIScFhnLUQk2nqehOEplp919lZHbCgwj4219BTC-Sw9orWOt5Fjv7rRtGxVEeIfQLWGa2xw\">\";}}}}',-1,1511220609.582,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.basic_html config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:369 node_view rendered user:0 user:5','2759'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical047aad7505ce5c1ebcf3d7abff9add5dd5210295496b6c3783bfc97d410a9214:[theme]=yaffs:[timezone]=Europe/London:[url]=https://2z4bADsDEsKV9_q8o_D5N7AJ6j4nHNaM49t8m-DBJQM','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:131\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Sat, 16 Dec 2017 06:01:33 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8589:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"ha8SkM4Wqa5D6hs0ijNvuh75XgpXveEsc1HK8LnIIHsoT4TrrQ1KjrEBZv4hgTZ_ELDr3tmorg\">\n    <title>YAFFS talk - Slide 23 - Performance - Examples | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"ha8SkM4Wqa5D6hs0ijNvuh75XgpXveEsc1HK8LnIIHsoT4TrrQ1KjrEBZv4hgTZ_ELDr3tmorg\">\n    <js-placeholder token=\"ha8SkM4Wqa5D6hs0ijNvuh75XgpXveEsc1HK8LnIIHsoT4TrrQ1KjrEBZv4hgTZ_ELDr3tmorg\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-book navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>YAFFS talk - Slide 23 - Performance - Examples</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-talk-slide-23-performance-examples\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/132\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_23.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_23.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"ha8SkM4Wqa5D6hs0ijNvuh75XgpXveEsc1HK8LnIIHsoT4TrrQ1KjrEBZv4hgTZ_ELDr3tmorg\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:131\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:1\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:17:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:93:\"YAFFS talk - Slide 23 - Performance - Examples | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:4;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:5;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:6;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:9;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:41:\"/yaffs-talk-slide-23-performance-examples\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/131\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:41:\"/yaffs-talk-slide-23-performance-examples\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"ha8SkM4Wqa5D6hs0ijNvuh75XgpXveEsc1HK8LnIIHsoT4TrrQ1KjrEBZv4hgTZ_ELDr3tmorg\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"ha8SkM4Wqa5D6hs0ijNvuh75XgpXveEsc1HK8LnIIHsoT4TrrQ1KjrEBZv4hgTZ_ELDr3tmorg\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"ha8SkM4Wqa5D6hs0ijNvuh75XgpXveEsc1HK8LnIIHsoT4TrrQ1KjrEBZv4hgTZ_ELDr3tmorg\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"ha8SkM4Wqa5D6hs0ijNvuh75XgpXveEsc1HK8LnIIHsoT4TrrQ1KjrEBZv4hgTZ_ELDr3tmorg\">\";}}}}',-1,1513404093.259,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:131 node_view rendered user:0 user:1','2753'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical047aad7505ce5c1ebcf3d7abff9add5dd5210295496b6c3783bfc97d410a9214:[theme]=yaffs:[timezone]=Europe/London:[url]=https://RLY7S-VUEcDRp6axxFj63efwXUT9iqyd8ub6G9WA6NE','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:131\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Mon, 18 Dec 2017 07:36:03 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8589:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"N6dAuxhh4b6gOPEOJmGm66VPntfj02BON_J9O13L-daSQXsz8YjC3Y-DHFt2GrhjMwWk36wOiw\">\n    <title>YAFFS talk - Slide 23 - Performance - Examples | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"N6dAuxhh4b6gOPEOJmGm66VPntfj02BON_J9O13L-daSQXsz8YjC3Y-DHFt2GrhjMwWk36wOiw\">\n    <js-placeholder token=\"N6dAuxhh4b6gOPEOJmGm66VPntfj02BON_J9O13L-daSQXsz8YjC3Y-DHFt2GrhjMwWk36wOiw\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-book navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>YAFFS talk - Slide 23 - Performance - Examples</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-talk-slide-23-performance-examples\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/132\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_23.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_23.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"N6dAuxhh4b6gOPEOJmGm66VPntfj02BON_J9O13L-daSQXsz8YjC3Y-DHFt2GrhjMwWk36wOiw\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:131\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:1\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:17:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:93:\"YAFFS talk - Slide 23 - Performance - Examples | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:4;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:5;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:6;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:9;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:41:\"/yaffs-talk-slide-23-performance-examples\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/131\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:41:\"/yaffs-talk-slide-23-performance-examples\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"N6dAuxhh4b6gOPEOJmGm66VPntfj02BON_J9O13L-daSQXsz8YjC3Y-DHFt2GrhjMwWk36wOiw\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"N6dAuxhh4b6gOPEOJmGm66VPntfj02BON_J9O13L-daSQXsz8YjC3Y-DHFt2GrhjMwWk36wOiw\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"N6dAuxhh4b6gOPEOJmGm66VPntfj02BON_J9O13L-daSQXsz8YjC3Y-DHFt2GrhjMwWk36wOiw\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"N6dAuxhh4b6gOPEOJmGm66VPntfj02BON_J9O13L-daSQXsz8YjC3Y-DHFt2GrhjMwWk36wOiw\">\";}}}}',-1,1513582563.562,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:131 node_view rendered user:0 user:1','2753'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical06a671f5b888bd762a99723e3c568e0141e08a1d865cd8a3137840ffd4c47afe:[theme]=yaffs:[timezone]=Europe/London:[url]=https://MpO0MVoJfxA33VzgVxF5blGtcnBICoV9lLIdMpUcwK8','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:49:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:31:\"config:filter.format.basic_html\";i:37;s:30:\"config:filter.format.full_html\";i:38;s:29:\"config:filter.format.raw_html\";i:39;s:22:\"config:search.settings\";i:40;s:26:\"config:system.menu.account\";i:41;s:23:\"config:system.menu.main\";i:42;s:24:\"config:system.menu.tools\";i:43;s:18:\"config:system.site\";i:44;s:8:\"node:397\";i:45;s:9:\"node_view\";i:46;s:8:\"rendered\";i:47;s:6:\"user:0\";i:48;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Sun, 19 Nov 2017 23:45:58 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8334:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"EY9qZcEqo9EwdnQP49w6DCso6AYdRkIZFdACTsb1n5ValQ8Er32wVHrN1YsRwQHQwbn77NDvbw\">\n    <title>Design Electronics | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"EY9qZcEqo9EwdnQP49w6DCso6AYdRkIZFdACTsb1n5ValQ8Er32wVHrN1YsRwQHQwbn77NDvbw\">\n    <js-placeholder token=\"EY9qZcEqo9EwdnQP49w6DCso6AYdRkIZFdACTsb1n5ValQ8Er32wVHrN1YsRwQHQwbn77NDvbw\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-yaffs-user-logo navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>Design Electronics</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/logos/design-electronics\" class=\"yaffs-user-logo full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p>Design Electronics use Yaffs</p></div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"EY9qZcEqo9EwdnQP49w6DCso6AYdRkIZFdACTsb1n5ValQ8Er32wVHrN1YsRwQHQwbn77NDvbw\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:49:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:31:\"config:filter.format.basic_html\";i:37;s:30:\"config:filter.format.full_html\";i:38;s:29:\"config:filter.format.raw_html\";i:39;s:22:\"config:search.settings\";i:40;s:26:\"config:system.menu.account\";i:41;s:23:\"config:system.menu.main\";i:42;s:24:\"config:system.menu.tools\";i:43;s:18:\"config:system.site\";i:44;s:8:\"node:397\";i:45;s:9:\"node_view\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";i:48;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:18:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:65:\"Design Electronics | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:11:\"description\";s:7:\"content\";s:28:\"Design Electronics use Yaffs\";}}i:1;s:11:\"description\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:4;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:5;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:6;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:9;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:17;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:25:\"/logos/design-electronics\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/397\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:25:\"/logos/design-electronics\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"EY9qZcEqo9EwdnQP49w6DCso6AYdRkIZFdACTsb1n5ValQ8Er32wVHrN1YsRwQHQwbn77NDvbw\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"EY9qZcEqo9EwdnQP49w6DCso6AYdRkIZFdACTsb1n5ValQ8Er32wVHrN1YsRwQHQwbn77NDvbw\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"EY9qZcEqo9EwdnQP49w6DCso6AYdRkIZFdACTsb1n5ValQ8Er32wVHrN1YsRwQHQwbn77NDvbw\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"EY9qZcEqo9EwdnQP49w6DCso6AYdRkIZFdACTsb1n5ValQ8Er32wVHrN1YsRwQHQwbn77NDvbw\">\";}}}}',-1,1511135158.080,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.basic_html config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:397 node_view rendered user:0 user:1','2764'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical07afac1fc86fa70d993dc697fdd2ee4f3e6d16b5c60de5789df6e84defb945d2:[theme]=yaffs:[timezone]=Europe/London:[url]=https://Cv0frOdLdgLknTGwXQrseInX6ObhZYc8xc6ku4JbqOw','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:374\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Wed, 22 Nov 2017 08:31:05 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8155:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"JXU2WB9uvRiPwa6OKCObRawKKZzd9jSJHdM2NxTkX8hFRlzAe2L6-uow-ZEGfIEg0WsHXvHB_w\">\n    <title>YAFFS Tnode tree | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"JXU2WB9uvRiPwa6OKCObRawKKZzd9jSJHdM2NxTkX8hFRlzAe2L6-uow-ZEGfIEg0WsHXvHB_w\">\n    <js-placeholder token=\"JXU2WB9uvRiPwa6OKCObRawKKZzd9jSJHdM2NxTkX8hFRlzAe2L6-uow-ZEGfIEg0WsHXvHB_w\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-image navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>YAFFS Tnode tree</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-tnode-tree\" class=\"image is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"JXU2WB9uvRiPwa6OKCObRawKKZzd9jSJHdM2NxTkX8hFRlzAe2L6-uow-ZEGfIEg0WsHXvHB_w\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:374\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:1\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:17:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:63:\"YAFFS Tnode tree | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:4;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:5;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:6;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:9;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:17:\"/yaffs-tnode-tree\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/374\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:17:\"/yaffs-tnode-tree\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"JXU2WB9uvRiPwa6OKCObRawKKZzd9jSJHdM2NxTkX8hFRlzAe2L6-uow-ZEGfIEg0WsHXvHB_w\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"JXU2WB9uvRiPwa6OKCObRawKKZzd9jSJHdM2NxTkX8hFRlzAe2L6-uow-ZEGfIEg0WsHXvHB_w\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"JXU2WB9uvRiPwa6OKCObRawKKZzd9jSJHdM2NxTkX8hFRlzAe2L6-uow-ZEGfIEg0WsHXvHB_w\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"JXU2WB9uvRiPwa6OKCObRawKKZzd9jSJHdM2NxTkX8hFRlzAe2L6-uow-ZEGfIEg0WsHXvHB_w\">\";}}}}',-1,1511339465.664,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:374 node_view rendered user:0 user:1','2753'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical0d3864191584d6421956355bf318216b7c661da2a0463ca5a258edd62f068817:[theme]=yaffs:[timezone]=Europe/London:[url]=https://aPLvtI5RWgFaMvwWF0eg6oCW3fIfmj3KFpttLX4XOBA','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:133\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Sun, 26 Nov 2017 19:26:54 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8603:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"wdJPlzsnDc1VcGkBJa5h37UaWVa3lxXsyWWVf6RjKKeXlaG_mtlE6VVR-7JifkteoUS9qqhNAQ\">\n    <title>YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"wdJPlzsnDc1VcGkBJa5h37UaWVa3lxXsyWWVf6RjKKeXlaG_mtlE6VVR-7JifkteoUS9qqhNAQ\">\n    <js-placeholder token=\"wdJPlzsnDc1VcGkBJa5h37UaWVa3lxXsyWWVf6RjKKeXlaG_mtlE6VVR-7JifkteoUS9qqhNAQ\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-book navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/134\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_25.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_25.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"wdJPlzsnDc1VcGkBJa5h37UaWVa3lxXsyWWVf6RjKKeXlaG_mtlE6VVR-7JifkteoUS9qqhNAQ\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:133\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:1\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:17:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:97:\"YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:4;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:5;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:6;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:9;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:47:\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/133\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:47:\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"wdJPlzsnDc1VcGkBJa5h37UaWVa3lxXsyWWVf6RjKKeXlaG_mtlE6VVR-7JifkteoUS9qqhNAQ\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"wdJPlzsnDc1VcGkBJa5h37UaWVa3lxXsyWWVf6RjKKeXlaG_mtlE6VVR-7JifkteoUS9qqhNAQ\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"wdJPlzsnDc1VcGkBJa5h37UaWVa3lxXsyWWVf6RjKKeXlaG_mtlE6VVR-7JifkteoUS9qqhNAQ\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"wdJPlzsnDc1VcGkBJa5h37UaWVa3lxXsyWWVf6RjKKeXlaG_mtlE6VVR-7JifkteoUS9qqhNAQ\">\";}}}}',-1,1511724414.210,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:133 node_view rendered user:0 user:1','2753'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical0d3864191584d6421956355bf318216b7c661da2a0463ca5a258edd62f068817:[theme]=yaffs:[timezone]=Europe/London:[url]=https://yideJEZ_LsDCJRJCpH7YF9FAEciy4UB_dXsJOGTPCcM','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:133\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Tue, 21 Nov 2017 20:43:46 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8603:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"6D1AJSmSuVK5MTlvSaBHAhrtz8jvn12HhF_Gudf6VxIuEDFnKKEKjaDzXbrWw48H8Y2UQBPzCg\">\n    <title>YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"6D1AJSmSuVK5MTlvSaBHAhrtz8jvn12HhF_Gudf6VxIuEDFnKKEKjaDzXbrWw48H8Y2UQBPzCg\">\n    <js-placeholder token=\"6D1AJSmSuVK5MTlvSaBHAhrtz8jvn12HhF_Gudf6VxIuEDFnKKEKjaDzXbrWw48H8Y2UQBPzCg\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-book navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/134\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_25.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_25.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"6D1AJSmSuVK5MTlvSaBHAhrtz8jvn12HhF_Gudf6VxIuEDFnKKEKjaDzXbrWw48H8Y2UQBPzCg\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:133\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:1\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:17:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:97:\"YAFFS talk - Slide 25 - JFFS2 and YAFFS Comparison | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:4;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:5;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:6;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:9;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:47:\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/133\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:47:\"/yaffs-talk-slide-25-jffs2-and-yaffs-comparison\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"6D1AJSmSuVK5MTlvSaBHAhrtz8jvn12HhF_Gudf6VxIuEDFnKKEKjaDzXbrWw48H8Y2UQBPzCg\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"6D1AJSmSuVK5MTlvSaBHAhrtz8jvn12HhF_Gudf6VxIuEDFnKKEKjaDzXbrWw48H8Y2UQBPzCg\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"6D1AJSmSuVK5MTlvSaBHAhrtz8jvn12HhF_Gudf6VxIuEDFnKKEKjaDzXbrWw48H8Y2UQBPzCg\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"6D1AJSmSuVK5MTlvSaBHAhrtz8jvn12HhF_Gudf6VxIuEDFnKKEKjaDzXbrWw48H8Y2UQBPzCg\">\";}}}}',-1,1511297026.091,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:133 node_view rendered user:0 user:1','2753'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical0d45cff14c62e74506b8fec52cb860538e3a3708fbe445963694dc82806003d0:[theme]=yaffs:[timezone]=Europe/London:[url]=https://rr7BBpINY46WwJQIeF02m0e1ZVisAB0RMkbvY7POO4M','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:53:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:31:\"config:filter.format.basic_html\";i:37;s:30:\"config:filter.format.full_html\";i:38;s:29:\"config:filter.format.raw_html\";i:39;s:32:\"config:image.style.max_1300x1300\";i:40;s:30:\"config:image.style.max_325x325\";i:41;s:30:\"config:image.style.max_650x650\";i:42;s:37:\"config:responsive_image.styles.narrow\";i:43;s:22:\"config:search.settings\";i:44;s:26:\"config:system.menu.account\";i:45;s:23:\"config:system.menu.main\";i:46;s:24:\"config:system.menu.tools\";i:47;s:18:\"config:system.site\";i:48;s:8:\"node:503\";i:49;s:9:\"node_view\";i:50;s:8:\"rendered\";i:51;s:6:\"user:0\";i:52;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Wed, 22 Nov 2017 00:36:44 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:10508:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"a73UT2YZmbqYMleeEtk-0Srb9fUV0D7xdbRWvW_ynhtvN5hD7Li1uFc1riDitJBTEuabssaSjw\">\n    <title>“Almost 15 years …never seen a failure...” | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"a73UT2YZmbqYMleeEtk-0Srb9fUV0D7xdbRWvW_ynhtvN5hD7Li1uFc1riDitJBTEuabssaSjw\">\n    <js-placeholder token=\"a73UT2YZmbqYMleeEtk-0Srb9fUV0D7xdbRWvW_ynhtvN5hD7Li1uFc1riDitJBTEuabssaSjw\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-case-study navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>“Almost 15 years …never seen a failure...”</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/almost-15-years-never-seen-failure\" class=\"case-study is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-field-organisation field--type-string field--label-hidden field--item\">Tape Replacement Ltd</div>\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\"><p dir=\"ltr\">The DDS range of digital data storage solutions from Tape Replacement Ltd deliver a modern, solid state data storage unit designed specifically to replace out-dated magnetic tape, magneto optical, disc hard-drive units such as those used within legacy telephone switching systems. This saves companies such as telcos, and ultimately their customers, millions of dollars in upgrade costs as well as improving overall system reliability and keeping functioning equipment from being dumped in landfills.</p>\n\n<p dir=\"ltr\">The storage layer is made up of two independent stacks of NAND chips, combined using a RAID-1 structure, using YAFFS to expose this to the application.</p>\n\n<p dir=\"ltr\">According to Andre Renaud, Engineering Manager at Tape Replacement:</p>\n\n<blockquote>\n<p dir=\"ltr\">“We\'ve been running the units for almost 15 years now, and we have never seen a failure of the underlying YAFFS/NAND storage system. YAFFS provides us with a fast, reliable storage mechanism which is especially useful given the changes in NAND technologies over the years, and the intricate technical details of their behaviour.”</p>\n</blockquote></div>\n      \n      <div class=\"field field--name-field-url field--type-link field--label-hidden field--items\">\n              <div class=\"field--item\"><a href=\"http://www.tape-replacement.com/\">http://www.tape-replacement.com/</a></div>\n          </div>\n  \n            <div class=\"field field--name-field-image field--type-image field--label-hidden field--item\">    <img srcset=\"/sites/default/files/styles/max_325x325/public/2017-09/tape_replacement.jpg?itok=HsMgXnI2 325w, /sites/default/files/styles/max_650x650/public/2017-09/tape_replacement.jpg?itok=cUoW-9yU 555w\" sizes=\"(min-width: 1290px) 325px, (min-width: 851px) 25vw, (min-width: 560px) 50vw, 100vw\" src=\"/sites/default/files/styles/max_325x325/public/2017-09/tape_replacement.jpg?itok=HsMgXnI2\" alt=\"Tape Replacement Ltd Logo\" typeof=\"foaf:Image\" class=\"img-responsive\" />\n\n\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"a73UT2YZmbqYMleeEtk-0Srb9fUV0D7xdbRWvW_ynhtvN5hD7Li1uFc1riDitJBTEuabssaSjw\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:53:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:31:\"config:filter.format.basic_html\";i:37;s:30:\"config:filter.format.full_html\";i:38;s:29:\"config:filter.format.raw_html\";i:39;s:32:\"config:image.style.max_1300x1300\";i:40;s:30:\"config:image.style.max_325x325\";i:41;s:30:\"config:image.style.max_650x650\";i:42;s:37:\"config:responsive_image.styles.narrow\";i:43;s:22:\"config:search.settings\";i:44;s:26:\"config:system.menu.account\";i:45;s:23:\"config:system.menu.main\";i:46;s:24:\"config:system.menu.tools\";i:47;s:18:\"config:system.site\";i:48;s:8:\"node:503\";i:49;s:9:\"node_view\";i:50;s:6:\"user:0\";i:51;s:6:\"user:1\";i:52;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:10:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:16:\"core/picturefill\";i:9;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:18:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:95:\"“Almost 15 years …never seen a failure...” | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:11:\"description\";s:7:\"content\";s:500:\"The DDS range of digital data storage solutions from Tape Replacement Ltd deliver a modern, solid state data storage unit designed specifically to replace out-dated magnetic tape, magneto optical, disc hard-drive units such as those used within legacy telephone switching systems. This saves companies such as telcos, and ultimately their customers, millions of dollars in upgrade costs as well as improving overall system reliability and keeping functioning equipment from being dumped in landfills.\";}}i:1;s:11:\"description\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:4;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:5;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:6;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:9;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:17;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:35:\"/almost-15-years-never-seen-failure\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/503\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:35:\"/almost-15-years-never-seen-failure\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"a73UT2YZmbqYMleeEtk-0Srb9fUV0D7xdbRWvW_ynhtvN5hD7Li1uFc1riDitJBTEuabssaSjw\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"a73UT2YZmbqYMleeEtk-0Srb9fUV0D7xdbRWvW_ynhtvN5hD7Li1uFc1riDitJBTEuabssaSjw\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"a73UT2YZmbqYMleeEtk-0Srb9fUV0D7xdbRWvW_ynhtvN5hD7Li1uFc1riDitJBTEuabssaSjw\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"a73UT2YZmbqYMleeEtk-0Srb9fUV0D7xdbRWvW_ynhtvN5hD7Li1uFc1riDitJBTEuabssaSjw\">\";}}}}',-1,1511311004.134,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.basic_html config:filter.format.full_html config:filter.format.raw_html config:image.style.max_1300x1300 config:image.style.max_325x325 config:image.style.max_650x650 config:responsive_image.styles.narrow config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:503 node_view rendered user:0 user:1','2770'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical0ec5b4af43edfbe4ac0f998d66ca3a8a0eb3e5b187667cd6c5888f07d87749fa:[theme]=yaffs:[timezone]=Europe/London:[url]=https://K1mxE9yQtF0t58DnD-pipq76Up_6TqfpPEAltnet0YQ','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:348\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:3\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Wed, 15 Nov 2017 18:43:43 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:10113:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"Az_Dc_5MwXj7-C17IXIpaXtwag15m_C_vQeAkTCtMRAta4lUP5FNQr5YeDwZKJ05cSI3VX8enA\">\n    <title>Yaffs1 memory footprint | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"Az_Dc_5MwXj7-C17IXIpaXtwag15m_C_vQeAkTCtMRAta4lUP5FNQr5YeDwZKJ05cSI3VX8enA\">\n    <js-placeholder token=\"Az_Dc_5MwXj7-C17IXIpaXtwag15m_C_vQeAkTCtMRAta4lUP5FNQr5YeDwZKJ05cSI3VX8enA\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-book navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>Yaffs1 memory footprint</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/archives/yaffs1-memory-footprint\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p>Yaffs claims a \'low memory footprint\', but what exactly does that mean? How low is low?</p>\n<p>Calculating an exact footprint is no easy task. There are many dependencies. Here is an approximation for Yaffs1 on Linux, assuming the standard block size of 512bytes per page and 16kB per block.</p>\n<ol>\n<li>Code size. This is dependent on various factors including CPU choice, optiomisation options etc. As a rough guide, the yaffs.o Linux module for x86 is around 55kBytes. This could be made smaller by stripping the debug text and ECC code if you don\'t need that. </li>\n<li>Run-time data structures. Some of these are fixed size and others are generated in runtime and change as your file structures change. As a rough guide though I will give the following:\n<ol type=\"a\">\n <li>Each yaffs partition needs a device structure of less than 1kB + approx 2-4kB stack with the current implementation. </li>\n <li>If shortOpCaches are enabled, then 524 bytes per cache entry (5 to 10 is a good number). </li>\n <li>About 120 bytes per file. (With short name caching enabled) </li>\n <li>About 4 bytes per block of NAND (ie. about 128 bytes per MB of NAND). </li>\n <li>About 4kBytes of RAM per MB of NAND for building the file TNode trees that are used to locate the data chunks. </li>\n</ol>\n </li>\n</ol>\n<p>Thus for a system using a 64MByte NAND and say 500 files you can budget on approx:</p>\n<ul>\n<li>1) 55kBytes </li>\n<li>2a) 5kB </li>\n<li>2b) 3kB (5 cache entries) </li>\n<li>2c) 60kB </li>\n<li>2d) 16kB </li>\n<li>2e) 256kB </li>\n</ul>\n<b>Total 410kBytes</b>\n<p>The last item, the tnodes, is the biggest expense in Yaffs. This can be reduced significantly by using a larger page size.</p>\n<p>There are some opportunities to tune some of these numbers so please feel free to discusss further if required.</p>\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"Az_Dc_5MwXj7-C17IXIpaXtwag15m_C_vQeAkTCtMRAta4lUP5FNQr5YeDwZKJ05cSI3VX8enA\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:348\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:3\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:18:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:70:\"Yaffs1 memory footprint | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:11:\"description\";s:7:\"content\";s:284:\"Yaffs claims a \'low memory footprint\', but what exactly does that mean? How low is low?\nCalculating an exact footprint is no easy task. There are many dependencies. Here is an approximation for Yaffs1 on Linux, assuming the standard block size of 512bytes per page and 16kB per block.\";}}i:1;s:11:\"description\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:4;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:5;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:6;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:9;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:17;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:33:\"/archives/yaffs1-memory-footprint\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/348\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:33:\"/archives/yaffs1-memory-footprint\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"Az_Dc_5MwXj7-C17IXIpaXtwag15m_C_vQeAkTCtMRAta4lUP5FNQr5YeDwZKJ05cSI3VX8enA\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"Az_Dc_5MwXj7-C17IXIpaXtwag15m_C_vQeAkTCtMRAta4lUP5FNQr5YeDwZKJ05cSI3VX8enA\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"Az_Dc_5MwXj7-C17IXIpaXtwag15m_C_vQeAkTCtMRAta4lUP5FNQr5YeDwZKJ05cSI3VX8enA\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"Az_Dc_5MwXj7-C17IXIpaXtwag15m_C_vQeAkTCtMRAta4lUP5FNQr5YeDwZKJ05cSI3VX8enA\">\";}}}}',-1,1510771423.656,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:348 node_view rendered user:0 user:3','2750'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical0f2f0ce93899f09506d17501efbd177a03cf7948274075187817bd41eebe7f10:[theme]=yaffs:[timezone]=Europe/London:[url]=https://0aagVFQBs-sJc0aFbpldkX3SaXJybEVN_FdJMwBFOww','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:114\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Wed, 15 Nov 2017 18:30:13 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8565:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"Wc7S2Yh-mdy2npBCkXSgxMkm-06puRBJ5nYnglUEyxEJYqBTCRZVWUJql-ZV-0LYh8y44M2lVw\">\n    <title>YAFFS talk - Slide 6 - Design Approach | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"Wc7S2Yh-mdy2npBCkXSgxMkm-06puRBJ5nYnglUEyxEJYqBTCRZVWUJql-ZV-0LYh8y44M2lVw\">\n    <js-placeholder token=\"Wc7S2Yh-mdy2npBCkXSgxMkm-06puRBJ5nYnglUEyxEJYqBTCRZVWUJql-ZV-0LYh8y44M2lVw\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-book navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>YAFFS talk - Slide 6 - Design Approach</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-talk-slide-6-design-approach\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/115\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_6.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_6.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"Wc7S2Yh-mdy2npBCkXSgxMkm-06puRBJ5nYnglUEyxEJYqBTCRZVWUJql-ZV-0LYh8y44M2lVw\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:114\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:1\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:17:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:85:\"YAFFS talk - Slide 6 - Design Approach | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:4;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:5;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:6;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:9;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:35:\"/yaffs-talk-slide-6-design-approach\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/114\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:35:\"/yaffs-talk-slide-6-design-approach\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"Wc7S2Yh-mdy2npBCkXSgxMkm-06puRBJ5nYnglUEyxEJYqBTCRZVWUJql-ZV-0LYh8y44M2lVw\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"Wc7S2Yh-mdy2npBCkXSgxMkm-06puRBJ5nYnglUEyxEJYqBTCRZVWUJql-ZV-0LYh8y44M2lVw\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"Wc7S2Yh-mdy2npBCkXSgxMkm-06puRBJ5nYnglUEyxEJYqBTCRZVWUJql-ZV-0LYh8y44M2lVw\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"Wc7S2Yh-mdy2npBCkXSgxMkm-06puRBJ5nYnglUEyxEJYqBTCRZVWUJql-ZV-0LYh8y44M2lVw\">\";}}}}',-1,1510770614.000,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:114 node_view rendered user:0 user:1','2753'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical0f2f0ce93899f09506d17501efbd177a03cf7948274075187817bd41eebe7f10:[theme]=yaffs:[timezone]=Europe/London:[url]=https://FgfMOyITQYjHTZN7JYYPbbp-FWvBKaKBLUcqGMTUyUE','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:114\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Mon, 18 Dec 2017 04:41:35 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8565:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"XvnOQWgWJlDNZTxpD1pKYLE_08TLxLhLxVpjvBL1glqdr-AMH_DQ1D9qmUondNnch6_YIfu1Dg\">\n    <title>YAFFS talk - Slide 6 - Design Approach | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"XvnOQWgWJlDNZTxpD1pKYLE_08TLxLhLxVpjvBL1glqdr-AMH_DQ1D9qmUondNnch6_YIfu1Dg\">\n    <js-placeholder token=\"XvnOQWgWJlDNZTxpD1pKYLE_08TLxLhLxVpjvBL1glqdr-AMH_DQ1D9qmUondNnch6_YIfu1Dg\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-book navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>YAFFS talk - Slide 6 - Design Approach</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-talk-slide-6-design-approach\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"?q=node/115\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_6.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_6.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"XvnOQWgWJlDNZTxpD1pKYLE_08TLxLhLxVpjvBL1glqdr-AMH_DQ1D9qmUondNnch6_YIfu1Dg\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:114\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:1\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:17:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:85:\"YAFFS talk - Slide 6 - Design Approach | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:4;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:5;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:6;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:9;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:35:\"/yaffs-talk-slide-6-design-approach\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/114\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:35:\"/yaffs-talk-slide-6-design-approach\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"XvnOQWgWJlDNZTxpD1pKYLE_08TLxLhLxVpjvBL1glqdr-AMH_DQ1D9qmUondNnch6_YIfu1Dg\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"XvnOQWgWJlDNZTxpD1pKYLE_08TLxLhLxVpjvBL1glqdr-AMH_DQ1D9qmUondNnch6_YIfu1Dg\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"XvnOQWgWJlDNZTxpD1pKYLE_08TLxLhLxVpjvBL1glqdr-AMH_DQ1D9qmUondNnch6_YIfu1Dg\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"XvnOQWgWJlDNZTxpD1pKYLE_08TLxLhLxVpjvBL1glqdr-AMH_DQ1D9qmUondNnch6_YIfu1Dg\">\";}}}}',-1,1513572095.425,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:114 node_view rendered user:0 user:1','2753'),('response:[languages:language_interface]=en:[request_format]=html:[route]=entity.node.canonical0f96b975b589948a385f7f46f5388f797e931d2dda90faa82f97aadec6d81590:[theme]=yaffs:[timezone]=Europe/London:[url]=https://Sml8xUiX5yjwYJpkKAlkfpiwvzwf7S93GLmTVtLcIKc','a:5:{s:7:\"#markup\";s:0:\"\";s:9:\"#attached\";s:0:\"\";s:6:\"#cache\";a:3:{s:8:\"contexts\";a:18:{i:0;s:28:\"languages:language_interface\";i:1;s:14:\"request_format\";i:2;s:5:\"route\";i:3;s:32:\"route.menu_active_trails:account\";i:4;s:29:\"route.menu_active_trails:main\";i:5;s:30:\"route.menu_active_trails:tools\";i:6;s:5:\"theme\";i:7;s:8:\"timezone\";i:8;s:3:\"url\";i:9;s:8:\"url.path\";i:10;s:17:\"url.path.is_front\";i:11;s:15:\"url.path.parent\";i:12;s:30:\"url.query_args:_wrapper_format\";i:13;s:21:\"user.node_grants:view\";i:14;s:16:\"user.permissions\";i:15;s:10:\"user.roles\";i:16;s:20:\"user.roles:anonymous\";i:17;s:24:\"user.roles:authenticated\";}s:4:\"tags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:113\";i:44;s:9:\"node_view\";i:45;s:8:\"rendered\";i:46;s:6:\"user:0\";i:47;s:6:\"user:1\";}s:7:\"max-age\";i:-1;}s:17:\"#cache_properties\";a:1:{i:0;s:9:\"#response\";}s:9:\"#response\";O:31:\"Drupal\\Core\\Render\\HtmlResponse\":8:{s:7:\"headers\";O:50:\"Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\":5:{s:23:\"\0*\0computedCacheControl\";a:1:{s:8:\"no-cache\";b:1;}s:10:\"\0*\0cookies\";a:0:{}s:14:\"\0*\0headerNames\";a:3:{s:12:\"content-type\";s:12:\"Content-Type\";s:13:\"cache-control\";s:13:\"Cache-Control\";s:4:\"date\";s:4:\"Date\";}s:10:\"\0*\0headers\";a:3:{s:12:\"content-type\";a:1:{i:0;s:24:\"text/html; charset=UTF-8\";}s:13:\"cache-control\";a:1:{i:0;s:8:\"no-cache\";}s:4:\"date\";a:1:{i:0;s:29:\"Sat, 18 Nov 2017 10:47:25 GMT\";}}s:15:\"\0*\0cacheControl\";a:0:{}}s:10:\"\0*\0content\";s:8564:\"<!DOCTYPE html>\n<html  lang=\"en\" dir=\"ltr\" prefix=\"content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# \">\n  <head>\n    <head-placeholder token=\"SImPrusDr91xj0vvQBWQ-1cHbbpUOVw8_tt7f0jka6VHQ98oVeQ8wTXogK4fSJ0684hPGTIFEQ\">\n    <title>YAFFS talk - Slide 5 - Flash Primer | Yaffs - A Flash File System for embedded use</title>\n    <css-placeholder token=\"SImPrusDr91xj0vvQBWQ-1cHbbpUOVw8_tt7f0jka6VHQ98oVeQ8wTXogK4fSJ0684hPGTIFEQ\">\n    <js-placeholder token=\"SImPrusDr91xj0vvQBWQ-1cHbbpUOVw8_tt7f0jka6VHQ98oVeQ8wTXogK4fSJ0684hPGTIFEQ\">\n  </head>\n  <body class=\"fontyourface path-node page-node-type-book navbar-is-fixed-top has-glyphicons\">\n    <a href=\"#main-content\" class=\"visually-hidden focusable skip-link\">\n      Skip to main content\n    </a>\n    <div style=\"background-color: ; color: \" id=\"environment-indicator\">\n  \n    </div>\n\n              <header class=\"navbar navbar-default navbar-fixed-top\" id=\"navbar\" role=\"banner\">\n              <div class=\"container\">\n            <div class=\"navbar-header\">\n          <div class=\"region region-navigation\">\n          <a class=\"logo navbar-btn pull-left\" href=\"/\" title=\"Home\" rel=\"home\">\n      <img src=\"/themes/custom/yaffs/logo.svg\" alt=\"Home\" />\n    </a>\n      \n  </div>\n\n                          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#navbar-collapse\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n              </div>\n\n                    <div id=\"navbar-collapse\" class=\"navbar-collapse collapse\">\n            <div class=\"region region-navigation-collapsible\">\n    <nav role=\"navigation\" aria-labelledby=\"block-mainnavigation-menu\" id=\"block-mainnavigation\">\n            <h2 class=\"sr-only\" id=\"block-mainnavigation-menu\">Main navigation</h2>\n\n      \n              <ul class=\"menu nav navbar-nav\">\n                            <li>\n        <a href=\"/\" data-drupal-link-system-path=\"&lt;front&gt;\">Home</a>\n                  </li>\n                        <li>\n        <a href=\"/support\" title=\"Help for Yaffs\" data-drupal-link-system-path=\"node/380\">Support</a>\n                  </li>\n                        <li>\n        <a href=\"/documents\" data-drupal-link-system-path=\"documents\">Documents</a>\n                  </li>\n                        <li>\n        <a href=\"/get-yaffs\" data-drupal-link-system-path=\"node/382\">Download</a>\n                  </li>\n                        <li>\n        <a href=\"/about-us\" data-drupal-link-system-path=\"node/325\">About us</a>\n                  </li>\n                        <li>\n        <a href=\"/contact\" data-drupal-link-system-path=\"node/73\">Contact</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n<div class=\"search-block-form block block-search block-search-form-block\" data-drupal-selector=\"search-block-form\" id=\"block-searchform\" role=\"search\">\n  \n    \n      <form action=\"/search/node\" method=\"get\" id=\"search-block-form\" accept-charset=\"UTF-8\">\n  <div class=\"form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group\">\n      <label for=\"edit-keys\" class=\"control-label sr-only\">Search</label>\n  \n  \n  <div class=\"input-group\"><input title=\"Enter the terms you wish to search for.\" data-drupal-selector=\"edit-keys\" class=\"form-search form-control\" placeholder=\"Search\" type=\"search\" id=\"edit-keys\" name=\"keys\" value=\"\" size=\"15\" maxlength=\"128\" data-toggle=\"tooltip\" /><span class=\"input-group-btn\"><button type=\"submit\" value=\"Search\" class=\"button js-form-submit form-submit btn-primary btn icon-only\" name=\"\"><span class=\"sr-only\">Search</span><span class=\"icon glyphicon glyphicon-search\" aria-hidden=\"true\"></span></button></span></div>\n\n  \n  \n  </div>\n<div class=\"form-actions form-group js-form-wrapper form-wrapper\" data-drupal-selector=\"edit-actions\" id=\"edit-actions\"></div>\n\n</form>\n\n  </div>\n\n  </div>\n\n        </div>\n                    </div>\n          </header>\n  \n  <div role=\"main\" class=\"main-container container js-quickedit-main-content\">\n    <div class=\"row\">\n\n            \n            \n                  <section class=\"col-sm-12\">\n\n                                      <div class=\"highlighted\">  <div class=\"region region-highlighted\">\n      \n<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\n\n  </div>\n</div>\n                  \n                \n                \n                                      \n                  \n                          <a id=\"main-content\"></a>\n            <div class=\"region region-content\">\n        <h1 class=\"page-header\"><span>YAFFS talk - Slide 5 - Flash Primer</span>\n</h1>\n\n<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>  <article role=\"article\" about=\"/yaffs-talk-slide-5-flash-primer\" class=\"book is-promoted full clearfix\">\n\n  \n    \n\n  \n  <div class=\"content\">\n    \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<div class=\"image\">\n<a href=\"/drupal/?q=node/114\"><img width=\"640\" height=\"480\" border=\"0\" alt=\"yaffs_talk_5.jpg\" src=\"sites/yaffs.net/files/images/content/yaffs_talk_5.preview.jpg\" /></a>\n<div class=\"caption\">\n &nbsp;\n</div>\n</div>\n</div>\n      \n  </div>\n\n</article>\n\n\n  </div>\n\n              </section>\n\n                </div>\n  </div>\n\n      <footer class=\"footer container\" role=\"contentinfo\">\n        <div class=\"primary_footer row\">\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col1\">\n    <section id=\"block-yaffs-block-6\" class=\"block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<ul class=\"fa-ul\">\n<li><i class=\"fa-li fa fa-phone\"></i>+44 (0)1223 811679</li>\n<li><i class=\"fa-li fa fa-envelope\"></i><a href=\"denied:mailto:info@aleph1.co.uk?Subject=Website contact\" target=\"_top\">info@aleph1.co.uk</a></li>\n</ul>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                \n            </div>\n            <div class=\"col-sm-3\">\n                  <div class=\"region region-footer-col4\">\n    <section id=\"block-footerlegal\" class=\"block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-right\">&nbsp;<a href=\"/legal\">Legal &amp; Cookies</a></p>\n</div>\n      \n  </section>\n\n<section id=\"block-cookieinfo\" class=\"block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix\">\n  \n    \n\n      \n            <div class=\"field field--name-body field--type-text-with-summary field--label-hidden field--item\">\n<p class=\"text-align-justify\"><br />\nWe use <a href=\"/legal\">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>\n</div>\n      \n  </section>\n\n\n  </div>\n\n            </div>\n        </div>\n        <div class = \"secondary_footer row\">\n            <div class=\"col-sm-12\">\n                <div class=\"region region-footer\">\n    <nav role=\"navigation\" aria-labelledby=\"block-yaffs-account-menu-menu\" id=\"block-yaffs-account-menu\">\n            <h2 class=\"sr-only\" id=\"block-yaffs-account-menu-menu\">User account menu</h2>\n\n      \n              <ul class=\"menu nav navbar-nav navbar-right\">\n                            <li>\n        <a href=\"/user/login\" data-drupal-link-system-path=\"user/login\">Log in</a>\n                  </li>\n        </ul>\n  \n\n\n  </nav>\n\n  </div>\n\n            </div>\n        </div>\n    </footer>\n  \n    \n    <js-bottom-placeholder token=\"SImPrusDr91xj0vvQBWQ-1cHbbpUOVw8_tt7f0jka6VHQ98oVeQ8wTXogK4fSJ0684hPGTIFEQ\">\n  </body>\n</html>\n\";s:10:\"\0*\0version\";s:3:\"1.0\";s:13:\"\0*\0statusCode\";i:200;s:13:\"\0*\0statusText\";s:2:\"OK\";s:10:\"\0*\0charset\";N;s:23:\"\0*\0cacheabilityMetadata\";O:35:\"Drupal\\Core\\Cache\\CacheableMetadata\":3:{s:16:\"\0*\0cacheContexts\";a:17:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"route\";i:2;s:32:\"route.menu_active_trails:account\";i:3;s:29:\"route.menu_active_trails:main\";i:4;s:30:\"route.menu_active_trails:tools\";i:5;s:5:\"theme\";i:6;s:8:\"timezone\";i:7;s:3:\"url\";i:8;s:8:\"url.path\";i:9;s:17:\"url.path.is_front\";i:10;s:15:\"url.path.parent\";i:11;s:30:\"url.query_args:_wrapper_format\";i:12;s:21:\"user.node_grants:view\";i:13;s:16:\"user.permissions\";i:14;s:10:\"user.roles\";i:15;s:20:\"user.roles:anonymous\";i:16;s:24:\"user.roles:authenticated\";}s:12:\"\0*\0cacheTags\";a:48:{i:0;s:16:\"block_content:18\";i:1;s:16:\"block_content:23\";i:2;s:15:\"block_content:7\";i:3;s:18:\"block_content_view\";i:4;s:10:\"block_view\";i:5;s:32:\"config:block.block.choosingyaffs\";i:6;s:29:\"config:block.block.cookieinfo\";i:7;s:32:\"config:block.block.downloadyaffs\";i:8;s:30:\"config:block.block.footerlegal\";i:9;s:39:\"config:block.block.frontimagehighlight2\";i:10;s:32:\"config:block.block.frontpagehero\";i:11;s:39:\"config:block.block.frontpageprimeryaffs\";i:12;s:33:\"config:block.block.mainnavigation\";i:13;s:35:\"config:block.block.mainnavigation_2\";i:14;s:29:\"config:block.block.searchform\";i:15;s:31:\"config:block.block.sitebranding\";i:16;s:66:\"config:block.block.views_block__highlighted_yaffs_features_block_1\";i:17;s:66:\"config:block.block.views_block__yaffs_admin_recent_content_block_1\";i:18;s:66:\"config:block.block.views_block__yaffs_documents_highlights_block_1\";i:19;s:56:\"config:block.block.views_block__yaffs_user_logos_block_1\";i:20;s:37:\"config:block.block.yaffs_account_menu\";i:21;s:33:\"config:block.block.yaffs_block_10\";i:22;s:32:\"config:block.block.yaffs_block_5\";i:23;s:32:\"config:block.block.yaffs_block_6\";i:24;s:32:\"config:block.block.yaffs_block_8\";i:25;s:32:\"config:block.block.yaffs_block_9\";i:26;s:36:\"config:block.block.yaffs_breadcrumbs\";i:27;s:32:\"config:block.block.yaffs_content\";i:28;s:29:\"config:block.block.yaffs_help\";i:29;s:36:\"config:block.block.yaffs_local_tasks\";i:30;s:33:\"config:block.block.yaffs_messages\";i:31;s:35:\"config:block.block.yaffs_page_title\";i:32;s:32:\"config:block.block.yaffs_user_21\";i:33;s:31:\"config:block.block.yaffsinspace\";i:34;s:17:\"config:block_list\";i:35;s:24:\"config:color.theme.yaffs\";i:36;s:30:\"config:filter.format.full_html\";i:37;s:29:\"config:filter.format.raw_html\";i:38;s:22:\"config:search.settings\";i:39;s:26:\"config:system.menu.account\";i:40;s:23:\"config:system.menu.main\";i:41;s:24:\"config:system.menu.tools\";i:42;s:18:\"config:system.site\";i:43;s:8:\"node:113\";i:44;s:9:\"node_view\";i:45;s:6:\"user:0\";i:46;s:6:\"user:1\";i:47;s:8:\"rendered\";}s:14:\"\0*\0cacheMaxAge\";i:-1;}s:14:\"\0*\0attachments\";a:6:{s:7:\"library\";a:9:{i:0;s:14:\"core/html5shiv\";i:1;s:11:\"system/base\";i:2;s:15:\"bootstrap/theme\";i:3;s:20:\"yaffs/global-styling\";i:4;s:23:\"yaffs/bootstrap-scripts\";i:5;s:19:\"yaffs/yaffs-helpers\";i:6;s:17:\"bootstrap/popover\";i:7;s:17:\"bootstrap/tooltip\";i:8;s:50:\"environment_indicator/drupal.environment_indicator\";}s:9:\"html_head\";a:18:{i:0;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:5:\"title\";s:7:\"content\";s:82:\"YAFFS talk - Slide 5 - Flash Primer | Yaffs - A Flash File System for embedded use\";}}i:1;s:5:\"title\";}i:1;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:13:\"news_keywords\";s:7:\"content\";s:17:\"Flash File System\";}}i:1;s:13:\"news_keywords\";}i:2;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:11:\"description\";s:7:\"content\";s:0:\"\";}}i:1;s:11:\"description\";}i:3;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"abstract\";s:7:\"content\";s:352:\"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.\";}}i:1;s:8:\"abstract\";}i:4;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"keywords\";s:7:\"content\";s:82:\"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs\";}}i:1;s:8:\"keywords\";}i:5;a:2:{i:0;a:3:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:1:{s:7:\"charset\";s:5:\"utf-8\";}s:7:\"#weight\";i:-1000;}i:1;s:24:\"system_meta_content_type\";}i:6;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:9:\"Generator\";s:7:\"content\";s:33:\"Drupal 8 (https://www.drupal.org)\";}}i:1;s:21:\"system_meta_generator\";}i:7;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:15:\"MobileOptimized\";s:7:\"content\";s:5:\"width\";}}i:1;s:15:\"MobileOptimized\";}i:8;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:16:\"HandheldFriendly\";s:7:\"content\";s:4:\"true\";}}i:1;s:16:\"HandheldFriendly\";}i:9;a:2:{i:0;a:2:{s:4:\"#tag\";s:4:\"meta\";s:11:\"#attributes\";a:2:{s:4:\"name\";s:8:\"viewport\";s:7:\"content\";s:37:\"width=device-width, initial-scale=1.0\";}}i:1;s:8:\"viewport\";}i:10;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1151\";}i:11;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:124:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1152\";}i:12;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:122:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1153\";}i:13;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:123:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1149\";}i:14;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:129:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1150\";}i:15;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:125:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1148\";}i:16;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:126:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1147\";}i:17;a:2:{i:0;a:3:{s:5:\"#type\";s:8:\"html_tag\";s:4:\"#tag\";s:4:\"link\";s:11:\"#attributes\";a:3:{s:3:\"rel\";s:10:\"stylesheet\";s:4:\"href\";s:128:\"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css\";s:5:\"media\";s:3:\"all\";}}i:1;s:21:\"fontsquirrel-api-1154\";}}s:14:\"html_head_link\";a:4:{i:0;a:1:{i:0;a:3:{s:3:\"rel\";s:13:\"shortcut icon\";s:4:\"href\";s:38:\"/sites/default/files/yaffs_favicon.png\";s:4:\"type\";s:9:\"image/png\";}}i:1;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"canonical\";s:4:\"href\";s:32:\"/yaffs-talk-slide-5-flash-primer\";}i:1;b:1;}i:2;a:2:{i:0;a:2:{s:3:\"rel\";s:9:\"shortlink\";s:4:\"href\";s:9:\"/node/113\";}i:1;b:1;}i:3;a:2:{i:0;a:2:{s:3:\"rel\";s:8:\"revision\";s:4:\"href\";s:32:\"/yaffs-talk-slide-5-flash-primer\";}i:1;b:1;}}s:12:\"placeholders\";a:2:{s:210:\"<drupal-render-placeholder callback=\"Drupal\\block\\BlockViewBuilder::lazyBuilder\" arguments=\"0=yaffs_local_tasks&amp;1=full&amp;2\" token=\"w23j7iE363xxUJCXKAtJQdcjG4ZZoQ4QEIV26-ZdK5w\"></drupal-render-placeholder>\";a:2:{s:6:\"#cache\";a:4:{s:4:\"keys\";a:3:{i:0;s:11:\"entity_view\";i:1;s:5:\"block\";i:2;s:17:\"yaffs_local_tasks\";}s:8:\"contexts\";a:3:{i:0;s:28:\"languages:language_interface\";i:1;s:5:\"theme\";i:2;s:16:\"user.permissions\";}s:4:\"tags\";a:2:{i:0;s:10:\"block_view\";i:1;s:36:\"config:block.block.yaffs_local_tasks\";}s:7:\"max-age\";i:-1;}s:13:\"#lazy_builder\";a:2:{i:0;s:42:\"Drupal\\block\\BlockViewBuilder::lazyBuilder\";i:1;a:3:{i:0;s:17:\"yaffs_local_tasks\";i:1;s:4:\"full\";i:2;N;}}}s:190:\"<drupal-render-placeholder callback=\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\" arguments=\"0\" token=\"_HAdUpwWmet0TOTe2PSiJuMntExoshbm1kh2wQzzzAA\"></drupal-render-placeholder>\";a:1:{s:13:\"#lazy_builder\";a:2:{i:0;s:57:\"Drupal\\Core\\Render\\Element\\StatusMessages::renderMessages\";i:1;a:1:{i:0;N;}}}}s:14:\"drupalSettings\";a:2:{s:9:\"bootstrap\";a:25:{s:28:\"forms_has_error_value_toggle\";i:1;s:15:\"modal_animation\";i:1;s:14:\"modal_backdrop\";s:4:\"true\";s:14:\"modal_keyboard\";i:1;s:10:\"modal_show\";i:1;s:10:\"modal_size\";s:0:\"\";s:15:\"popover_enabled\";i:1;s:17:\"popover_animation\";i:1;s:17:\"popover_container\";s:4:\"body\";s:15:\"popover_content\";s:0:\"\";s:13:\"popover_delay\";s:1:\"0\";s:12:\"popover_html\";i:0;s:17:\"popover_placement\";s:5:\"right\";s:16:\"popover_selector\";s:0:\"\";s:13:\"popover_title\";s:0:\"\";s:15:\"popover_trigger\";s:5:\"click\";s:25:\"popover_trigger_autoclose\";i:1;s:15:\"tooltip_enabled\";i:1;s:17:\"tooltip_animation\";i:1;s:17:\"tooltip_container\";s:4:\"body\";s:13:\"tooltip_delay\";s:1:\"0\";s:12:\"tooltip_html\";i:0;s:17:\"tooltip_placement\";s:9:\"auto left\";s:16:\"tooltip_selector\";s:0:\"\";s:15:\"tooltip_trigger\";s:5:\"hover\";}s:14:\"ajaxTrustedUrl\";a:1:{s:12:\"/search/node\";b:1;}}s:37:\"html_response_attachment_placeholders\";a:4:{s:6:\"styles\";s:100:\"<css-placeholder token=\"SImPrusDr91xj0vvQBWQ-1cHbbpUOVw8_tt7f0jka6VHQ98oVeQ8wTXogK4fSJ0684hPGTIFEQ\">\";s:7:\"scripts\";s:99:\"<js-placeholder token=\"SImPrusDr91xj0vvQBWQ-1cHbbpUOVw8_tt7f0jka6VHQ98oVeQ8wTXogK4fSJ0684hPGTIFEQ\">\";s:14:\"scripts_bottom\";s:106:\"<js-bottom-placeholder token=\"SImPrusDr91xj0vvQBWQ-1cHbbpUOVw8_tt7f0jka6VHQ98oVeQ8wTXogK4fSJ0684hPGTIFEQ\">\";s:4:\"head\";s:101:\"<head-placeholder token=\"SImPrusDr91xj0vvQBWQ-1cHbbpUOVw8_tt7f0jka6VHQ98oVeQ8wTXogK4fSJ0684hPGTIFEQ\">\";}}}}',-1,1511002045.646,1,'block_content:18 block_content:23 block_content:7 block_content_view block_view config:block.block.choosingyaffs config:block.block.cookieinfo config:block.block.downloadyaffs config:block.block.footerlegal config:block.block.frontimagehighlight2 config:block.block.frontpagehero config:block.block.frontpageprimeryaffs config:block.block.mainnavigation config:block.block.mainnavigation_2 config:block.block.searchform config:block.block.sitebranding config:block.block.views_block__highlighted_yaffs_features_block_1 config:block.block.views_block__yaffs_admin_recent_content_block_1 config:block.block.views_block__yaffs_documents_highlights_block_1 config:block.block.views_block__yaffs_user_logos_block_1 config:block.block.yaffs_account_menu config:block.block.yaffs_block_10 config:block.block.yaffs_block_5 config:block.block.yaffs_block_6 config:block.block.yaffs_block_8 config:block.block.yaffs_block_9 config:block.block.yaffs_breadcrumbs config:block.block.yaffs_content config:block.block.yaffs_help config:block.block.yaffs_local_tasks config:block.block.yaffs_messages config:block.block.yaffs_page_title config:block.block.yaffs_user_21 config:block.block.yaffsinspace config:block_list config:color.theme.yaffs config:filter.format.full_html config:filter.format.raw_html config:search.settings config:system.menu.account config:system.menu.main config:system.menu.tools config:system.site node:113 node_view rendered user:0 user:1','2753'),