{"id":1306,"date":"2015-08-25T14:31:22","date_gmt":"2015-08-25T06:31:22","guid":{"rendered":"http:\/\/kaoru.tech\/?p=1306"},"modified":"2015-08-25T14:46:59","modified_gmt":"2015-08-25T06:46:59","slug":"atmel-sam9x5%e7%83%a7%e5%86%99%e5%bc%95%e5%af%bc%e6%96%87%e4%bb%b6","status":"publish","type":"post","link":"http:\/\/kaoru.tech:7000\/wordpress\/?p=1306","title":{"rendered":"ATMEL SAM9X5\u70e7\u5199\u5f15\u5bfc\u6587\u4ef6"},"content":{"rendered":"<p>\u4ecb\u7ecd<\/p>\n<p>ATMEL\u7684SAM9X5\u7cfb\u5217CPU\u5728\u8bbe\u5b9a\u4eceCPU\u5185\u90e8\u7684BOOTROM\u542f\u52a8\u540e\uff0c\u5982\u679c\u5728\u542f\u52a8\u8fc7\u7a0b\u4e2d\u6ca1\u6709\u53d1\u73b0NANDFLASH\u3001SPI FLASH\u3001DATA FLASH\u6216\u8005I2C FLASH\u4e2d\u5177\u5907\u53ef\u7528\u7684\u5f15\u5bfc\u6587\u4ef6\uff0c\u5219\u4f1a\u542f\u52a8SAMBA\u670d\u52a1\u3002\u6b64\u65f6\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u4e32\u53e3\u6216\u8005USB\u5bf9SAM9X5\u7684\u542f\u52a8FLASH\u8fdb\u884c\u7f16\u7a0b\u3002\u4f46\u662f\u7531\u4e8e\u4f7f\u7528\u4e32\u53e3\u8fdb\u884cSAMBA\u63a7\u5236\u7684\u65f6\u5019\u7ecf\u5e38\u65e0\u53cd\u5e94\uff0c\u6545\u5efa\u8bae\u4f7f\u7528USB\u63a5\u53e3\uff08USB\u63a5\u53e3\u4e3aSAM9X5\u7684Device\u63a5\u53e3\uff09\u3002<\/p>\n<h1>\u4f7f\u7528SAMBA\u70e7\u5199\u542f\u52a8\u6587\u4ef6<\/h1>\n<h2>\u8bc6\u522b\/\u5b89\u88c5USB\u9a71\u52a8<\/h2>\n<p>\u5982\u679cCPU\u542f\u52a8\u7684SAMBA\u670d\u52a1\uff0c\u5219CPU\u5728DBG\u53e3\u663e\u793aRomBOOT\uff0c\u540c\u65f6\u7535\u8111\u4f1a\u53d1\u73b0\u4e00\u4e2a\u65b0\u786c\u4ef6\uff08\u5982\u679cCPU\u627e\u5230\u4e86\u542f\u52a8\u6587\u4ef6\u6216\u8005\u542f\u52a8\u6587\u4ef6\u51fa\u9519\u5219\u4e0d\u4f1a\u6709\u65b0\u786c\u4ef6\u53d1\u73b0\uff09\uff1a<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1308 alignnone\" src=\"http:\/\/kaoru.tech\/wp-content\/uploads\/2015\/08\/SAM9X5-New-USB-Device-300x34.png\" alt=\"SAM9X5 New USB Device\" width=\"300\" height=\"34\" srcset=\"http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-New-USB-Device-300x34.png 300w, http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-New-USB-Device.png 518w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>\u5b89\u88c5\u9a71\u52a8\uff0c\u5b8c\u6210\u540e\u5982\u4e0b\uff1a<\/p>\n<p><a href=\"http:\/\/kaoru.tech\/wp-content\/uploads\/2015\/08\/SAM9X5-AT91-Device.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1309 alignnone\" src=\"http:\/\/kaoru.tech\/wp-content\/uploads\/2015\/08\/SAM9X5-AT91-Device-300x45.png\" alt=\"SAM9X5 AT91 Device\" width=\"300\" height=\"45\" srcset=\"http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-AT91-Device-300x45.png 300w, http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-AT91-Device.png 385w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>\u8fde\u63a5\u76ee\u6807\u677f<\/h2>\n<p>\u6253\u5f00SAMBA\u8f6f\u4ef6\uff0c\u9009\u62e9\u5b89\u88c5\u7684USB\u8f6cSERIAL\u7684\u8bbe\u5907\uff0c\u9009\u62e9\u8fde\u63a5\uff1a<\/p>\n<p><a href=\"http:\/\/kaoru.tech\/wp-content\/uploads\/2015\/08\/SAM9X5-SAMBA-Connect-Configuration.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1310 alignnone\" src=\"http:\/\/kaoru.tech\/wp-content\/uploads\/2015\/08\/SAM9X5-SAMBA-Connect-Configuration-300x130.png\" alt=\"SAM9X5 SAMBA Connect Configuration\" width=\"300\" height=\"130\" srcset=\"http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-SAMBA-Connect-Configuration-300x130.png 300w, http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-SAMBA-Connect-Configuration.png 416w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u7531\u4e8e\u6211\u4eec\u91c7\u7528NAND FLASH\u4f5c\u4e3a\u542f\u52a8\u82af\u7247\uff0c\u9009\u62e9NandFlash\u9009\u9879\u5361\uff1a<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1312 alignnone\" src=\"http:\/\/kaoru.tech\/wp-content\/uploads\/2015\/08\/SAM9X5-NandFlash-Table-300x235.png\" alt=\"SAM9X5 NandFlash Table\" width=\"300\" height=\"235\" srcset=\"http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-NandFlash-Table-300x235.png 300w, http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-NandFlash-Table.png 816w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2>\u70e7\u5199\u542f\u52a8\u6587\u4ef6<\/h2>\n<p>\u70e7\u5199Bootstrap\u6b65\u9aa4\uff1a\u201cEnable NandFlash\u201d -&gt; \u201cPmecc configuration&#8221; -&gt; &#8220;Send Boot File&#8221;\uff0c\u5176\u4e2dPMECC\u914d\u7f6e\u5982\u4e0b\uff1a<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/kaoru.tech\/wp-content\/uploads\/2015\/08\/SAM9X5-PMECC-Configuration.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1311 alignnone\" src=\"http:\/\/kaoru.tech\/wp-content\/uploads\/2015\/08\/SAM9X5-PMECC-Configuration-300x269.png\" alt=\"SAM9X5 PMECC Configuration\" width=\"300\" height=\"269\" srcset=\"http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-PMECC-Configuration-300x269.png 300w, http:\/\/kaoru.tech:7000\/wordpress\/wp-content\/uploads\/2015\/08\/SAM9X5-PMECC-Configuration.png 366w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u7531\u4e8e\u6211\u4eec\u7528\u7684SAMSUNG\u7684K9F2G08U0C-SIB0\uff1a<\/p>\n<ul>\n<li>Block(Erase) size\u662f0x20000<\/li>\n<li>Page size\u662f2048 byte + 64(OOB) byte<\/li>\n<li>Sector size\u662f512 byte<\/li>\n<li>\u4e00\u4e2aPage\u5305\u542b4\u4e2aSectors<\/li>\n<\/ul>\n<p>\u6839\u636eLinux\u5185\u6838\u4e2dPMECC\u63a7\u5236\u5668\u5bf92048\u5b57\u8282Page\u5b9a\u4e49ECC\u5728OOB\u4e2d\u4f4d\u7f6e\uff0c\u6545\u8bbe\u5b9a&#8221;Ecc offset\u201c\u4e3a48\uff0c\u201dNumber of ECC bits required\u201c\u4e3a2\uff1a<br \/>\n<code><br \/>\nstatic struct nand_ecclayout pmecc_oobinfo_2048 = {<br \/>\n.eccbytes = 16,<br \/>\n.eccpos = { 48, 49, 50, 51, 52, 53, 54, 55,<br \/>\n56, 57, 58, 59, 60, 61, 62, 63<br \/>\n},<br \/>\n.oobfree = {<br \/>\n{2, 46},<br \/>\n},<br \/>\n};<br \/>\nswitch (mtd-&gt;writesize) {<br \/>\ncase 2048:<br \/>\nnand_chip-&gt;ecc.bytes = 16;<br \/>\nnand_chip-&gt;ecc.steps = 1;<br \/>\nnand_chip-&gt;ecc.layout = &amp;pmecc_oobinfo_2048;<br \/>\nhost-&gt;mm = GF_DIMENSION_13;<br \/>\nhost-&gt;nn = (1 &lt;&lt; host-&gt;mm) - 1;<br \/>\n\/* 2-bits correction *\/<br \/>\nhost-&gt;tt = 2;<br \/>\nhost-&gt;sector_size = 512;<br \/>\nhost-&gt;sector_number = mtd-&gt;writesize \/<br \/>\nhost-&gt;sector_size;<br \/>\nhost-&gt;ecc_bytes_per_sector = 4;<br \/>\nhost-&gt;alpha_to = pmecc_get_alpha_to(host);<br \/>\nhost-&gt;index_of = pmecc_get_index_of(host);<br \/>\nbreak;<br \/>\n<\/code><\/p>\n<p>\u6700\u540e\u70e7\u5199Uboot\u5373\u53ef\u3002<\/p>\n<h1>\u91c7\u7528MMC\u542f\u52a8CPU\u70e7\u5199\u542f\u52a8\u6587\u4ef6<\/h1>\n<p>\u53e6\u5916\u4e00\u79cd\u66f4\u52a0\u4fbf\u5229\u7684\u65b9\u5f0f\u5c31\u662f\u901a\u8fc7SD\/TF\u5361\u542f\u52a8CPU\uff0c\u7136\u540e\u5728uboot\u4e0b\u70e7\u5199\u542f\u52a8\u6587\u4ef6\u3002<\/p>\n<p>SD\/TF\u5361\u542f\u52a8\u53ea\u9700\u8981\u4f7f\u7528at91bootstrap\u7f16\u8bd1\u51faSD\u5361\u542f\u52a8\u7684Bootstrap\u6587\u4ef6\uff0c\u4ee5boot.bin\u4e3a\u6587\u4ef6\u540d\u5b58\u5728SD\/TF\u5361\u4e2d\u3002\u540c\u65f6SD\/TF\u5361\u683c\u5f0f\u5316\u4e3aFAT32\u5206\u533a\u5373\u53ef\u3002<\/p>\n<p>\u7531\u4e8e\u6211\u4eec\u91c7\u7528\u7684\u662fSAMSUNG\u7684NANDFLASH\uff0c\u4e0d\u652f\u6301ONFI\u63a5\u53e3\uff0c\u6240\u4ee5\u8981\u5728\u524d\u9762\u7684208\u5b57\u8282\u586b\u5145PMECC\u7684\u53c2\u6570\uff0c\u5728\u548c\u7f16\u8bd1\u51fa\u6765\u7684Bootstrap\u7ec4\u5408\u6210\u53ef\u542f\u52a8\u7684Boostrap\u6587\u4ef6\u3002<\/p>\n<h1><code><\/code>\u53c2\u8003<\/h1>\n<ul>\n<li>http:\/\/www.atmel.com\/tools\/atmelsam-bain-systemprogrammer.aspx<\/li>\n<li>http:\/\/www.at91.com\/linux4sam\/bin\/view\/Linux4SAM\/AT91Bootstrap<\/li>\n<li>http:\/\/www.at91.com\/linux4sam\/bin\/view\/Linux4SAM\/PmeccConfigure<\/li>\n<li>drivers\/mtd\/nand\/atmel_nand_pmecc.c<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u4ecb\u7ecd ATMEL\u7684SAM9X5\u7cfb\u5217CPU\u5728\u8bbe\u5b9a\u4eceCPU\u5185\u90e8\u7684BOOTROM\u542f\u52a8\u540e\uff0c\u5982\u679c\u5728\u542f\u52a8\u8fc7\u7a0b\u4e2d\u6ca1\u6709\u53d1\u73b0NANDFLASH\u3001SPI FLASH\u3001DATA FLASH\u6216\u8005I2C FLASH\u4e2d\u5177\u5907\u53ef\u7528\u7684\u5f15\u5bfc\u6587\u4ef6\uff0c\u5219\u4f1a\u542f\u52a8SAMBA\u670d\u52a1\u3002\u6b64\u65f6\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u4e32\u53e3\u6216\u8005USB\u5bf9SAM9X5\u7684\u542f\u52a8FLASH\u8fdb\u884c\u7f16\u7a0b\u3002\u4f46\u662f\u7531\u4e8e\u4f7f\u7528\u4e32\u53e3\u8fdb\u884cSAMBA\u63a7\u5236\u7684\u65f6\u5019\u7ecf\u5e38\u65e0\u53cd\u5e94\uff0c\u6545\u5efa\u8bae\u4f7f\u7528USB\u63a5\u53e3\uff08USB\u63a5\u53e3\u4e3aSAM9X5\u7684Device\u63a5\u53e3\uff09\u3002 \u4f7f\u7528SAMBA\u70e7\u5199\u542f\u52a8\u6587\u4ef6 \u8bc6\u522b\/\u5b89\u88c5USB\u9a71\u52a8 \u5982\u679cCPU\u542f\u52a8\u7684SAMBA\u670d\u52a1\uff0c\u5219CPU\u5728DBG\u53e3\u663e\u793aRomBOOT\uff0c\u540c\u65f6\u7535\u8111\u4f1a\u53d1\u73b0\u4e00\u4e2a\u65b0\u786c\u4ef6\uff08\u5982\u679cCPU\u627e\u5230\u4e86\u542f\u52a8\u6587\u4ef6\u6216\u8005\u542f\u52a8\u6587\u4ef6\u51fa\u9519\u5219\u4e0d\u4f1a\u6709\u65b0\u786c\u4ef6\u53d1\u73b0\uff09\uff1a \u5b89\u88c5\u9a71\u52a8\uff0c\u5b8c\u6210\u540e\u5982\u4e0b\uff1a &nbsp; \u8fde\u63a5\u76ee\u6807\u677f \u6253\u5f00SAMBA\u8f6f\u4ef6\uff0c\u9009\u62e9\u5b89\u88c5\u7684USB\u8f6cSERIAL\u7684\u8bbe\u5907\uff0c\u9009\u62e9\u8fde\u63a5\uff1a \u7531\u4e8e\u6211\u4eec\u91c7\u7528NAND FLASH\u4f5c\u4e3a\u542f\u52a8\u82af\u7247\uff0c\u9009\u62e9NandFlash\u9009\u9879\u5361\uff1a \u70e7\u5199\u542f\u52a8\u6587\u4ef6 \u70e7\u5199Bootstrap\u6b65\u9aa4\uff1a\u201cEnable NandFlash\u201d -&gt; \u201cPmecc configuration&#8221; -&gt; &#8220;Send Boot File&#8221;\uff0c\u5176\u4e2dPMECC\u914d\u7f6e\u5982\u4e0b\uff1a &nbsp; \u7531\u4e8e\u6211\u4eec\u7528\u7684SAMSUNG\u7684K9F2G08U0C-SIB0\uff1a Block(Erase) size\u662f0x20000 Page size\u662f2048&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[159],"tags":[238,236,237],"class_list":["post-1306","post","type-post","status-publish","format-standard","hentry","category-atmel","tag-atme","tag-sam9x5","tag-samba"],"_links":{"self":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1306"}],"version-history":[{"count":8,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1306\/revisions"}],"predecessor-version":[{"id":1319,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1306\/revisions\/1319"}],"wp:attachment":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1306"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}