1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-03-21 14:46:37 +02:00

fa: bare-metal part 1/3 (#2324)

fa: bare-metal part 1/3

---------

Co-authored-by: javad-jafari <javajafarifromsharak@gmail.com>
Co-authored-by: javad-jafari <65780584+javad-jafari@users.noreply.github.com>
This commit is contained in:
Danny Khosravi 2024-08-28 00:27:32 +03:30 committed by GitHub
parent 1d88d7a6c0
commit be3a92a12a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

248
po/fa.po
View File

@ -16832,7 +16832,7 @@ msgstr ""
#: src/bare-metal/aps/inline-assembly.md:1 #: src/bare-metal/aps/inline-assembly.md:1
msgid "Inline assembly" msgid "Inline assembly"
msgstr "" msgstr "Inline assembly"
#: src/bare-metal/aps/inline-assembly.md:3 #: src/bare-metal/aps/inline-assembly.md:3
msgid "" msgid ""
@ -16840,54 +16840,63 @@ msgid ""
"Rust code. For example, to make an HVC (hypervisor call) to tell the " "Rust code. For example, to make an HVC (hypervisor call) to tell the "
"firmware to power off the system:" "firmware to power off the system:"
msgstr "" msgstr ""
"گاهی اوقات برای انجام کارهایی که با کد Rust امکان پذیر نیست، باید از اسمبلی "
"استفاده کنیم. به عنوان مثال، برای برقراری یک HVC (hypervisor call) نایز است "
"که به firmware بگویید سیستم را خاموش کند:"
#: src/bare-metal/aps/inline-assembly.md:20 #: src/bare-metal/aps/inline-assembly.md:20
#, fuzzy
msgid "" msgid ""
"// SAFETY: this only uses the declared registers and doesn't do anything\n" "// SAFETY: this only uses the declared registers and doesn't do anything\n"
" // with memory.\n" " // with memory.\n"
msgstr "" msgstr ""
"// SAFETY: this only uses the declared registers and doesn't do anything\n"
" // with memory.\n"
#: src/bare-metal/aps/inline-assembly.md:23 #: src/bare-metal/aps/inline-assembly.md:23
msgid "\"hvc #0\"" msgid "\"hvc #0\""
msgstr "" msgstr "\"hvc #0\""
#: src/bare-metal/aps/inline-assembly.md:24 #: src/bare-metal/aps/inline-assembly.md:24
msgid "\"w0\"" msgid "\"w0\""
msgstr "" msgstr "\"w0\""
#: src/bare-metal/aps/inline-assembly.md:25 #: src/bare-metal/aps/inline-assembly.md:25
msgid "\"w1\"" msgid "\"w1\""
msgstr "" msgstr "\"w1\""
#: src/bare-metal/aps/inline-assembly.md:26 #: src/bare-metal/aps/inline-assembly.md:26
msgid "\"w2\"" msgid "\"w2\""
msgstr "" msgstr "\"w2\""
#: src/bare-metal/aps/inline-assembly.md:27 #: src/bare-metal/aps/inline-assembly.md:27
msgid "\"w3\"" msgid "\"w3\""
msgstr "" msgstr "\"w3\""
#: src/bare-metal/aps/inline-assembly.md:28 #: src/bare-metal/aps/inline-assembly.md:28
msgid "\"w4\"" msgid "\"w4\""
msgstr "" msgstr "\"w4\""
#: src/bare-metal/aps/inline-assembly.md:29 #: src/bare-metal/aps/inline-assembly.md:29
msgid "\"w5\"" msgid "\"w5\""
msgstr "" msgstr "\"w5\""
#: src/bare-metal/aps/inline-assembly.md:30 #: src/bare-metal/aps/inline-assembly.md:30
msgid "\"w6\"" msgid "\"w6\""
msgstr "" msgstr "\"w6\""
#: src/bare-metal/aps/inline-assembly.md:31 #: src/bare-metal/aps/inline-assembly.md:31
msgid "\"w7\"" msgid "\"w7\""
msgstr "" msgstr "\"w7\""
#: src/bare-metal/aps/inline-assembly.md:40 #: src/bare-metal/aps/inline-assembly.md:40
msgid "" msgid ""
"(If you actually want to do this, use the [`smccc`](https://crates.io/crates/" "(If you actually want to do this, use the [`smccc`](https://crates.io/crates/"
"smccc) crate which has wrappers for all these functions.)" "smccc) crate which has wrappers for all these functions.)"
msgstr "" msgstr ""
"(اگر واقعاُ می‌خواهید این کار را انجام دهید، از crate مربوطه [`smccc`](https://"
"crates.io/crates/smccc) استفاده کنید که دارای بسته‌بندی(wrapper) برای همه این "
"عملکردها است.)"
#: src/bare-metal/aps/inline-assembly.md:45 #: src/bare-metal/aps/inline-assembly.md:45
msgid "" msgid ""
@ -16895,6 +16904,9 @@ msgid ""
"functions to manage system and CPU power states, among other things. It is " "functions to manage system and CPU power states, among other things. It is "
"implemented by EL3 firmware and hypervisors on many systems." "implemented by EL3 firmware and hypervisors on many systems."
msgstr "" msgstr ""
"‏ PSCI یک رابط هدایت‌گر Arm Power State است که مجموعه‌ای استاندارد از توابع "
"برای مدیریت وضعیت‌های power در سیستم و CPU بوده، از جمله موارد دیگری از این "
"مورد توسط میان‌افزار EL3 و hypervisor در بسیاری از سیستم‌ها پیاده سازی شده است."
#: src/bare-metal/aps/inline-assembly.md:48 #: src/bare-metal/aps/inline-assembly.md:48
msgid "" msgid ""
@ -16903,12 +16915,18 @@ msgid ""
"`inout` rather than `in` because the call could potentially clobber the " "`inout` rather than `in` because the call could potentially clobber the "
"contents of the registers." "contents of the registers."
msgstr "" msgstr ""
"یک `0 => _` syntax به این معنی است که رجیستر را قبل از اجرای کد اسمبلی "
"درون خطی به 0 مقداردهی کنید و پس از آن محتوای آن را نادیده بگیرید. ما باید "
"از `inout` به جای `in` استفاده کنیم زیرا این فراخوانی به طور بالقوه می‌تواند "
"محتویات رجیسترها را مخدوش کند."
#: src/bare-metal/aps/inline-assembly.md:52 #: src/bare-metal/aps/inline-assembly.md:52
msgid "" msgid ""
"This `main` function needs to be `#[no_mangle]` and `extern \"C\"` because " "This `main` function needs to be `#[no_mangle]` and `extern \"C\"` because "
"it is called from our entry point in `entry.S`." "it is called from our entry point in `entry.S`."
msgstr "" msgstr ""
"این تابع `main` باید به صورت`#[no_mangle]` و `extern \"C\"` باشد زیرا از "
"نقطه ورودی (entry point) ما در `entry.S` فراخوانی می‌شود."
#: src/bare-metal/aps/inline-assembly.md:54 #: src/bare-metal/aps/inline-assembly.md:54
msgid "" msgid ""
@ -16919,36 +16937,50 @@ msgid ""
"arguments passed to a function, so `entry.S` doesn't need to do anything " "arguments passed to a function, so `entry.S` doesn't need to do anything "
"special except make sure it doesn't change these registers." "special except make sure it doesn't change these registers."
msgstr "" msgstr ""
"‏ `_x0`–`_x3` مقادیر رجیسترهای `x0`–`x3` هستند که به طور معمول توسط "
"bootloader برای ارسال چیزهایی مانند اشاره‌گر به device tree استفاده می‌شود. "
"طبق قرارداد فراخوانی استاندارد aarch64 (که همان چیزی است که `extern \"C\"` "
"برای استفاده مشخص می‌کند)، رجیسترهای `x0`–`x7` برای ۸ آرگومان اول ارسال شده "
"به یک تابع استفاده می‌شوند، بنابراین `entry.S` این کار را انجام نمی‌دهد. لازم "
"نیست کار خاصی انجام دهید، جز اینکه مطمئن شوید که این مورد رجیسترها را تغییر "
"نمی‌دهد."
#: src/bare-metal/aps/inline-assembly.md:60 #: src/bare-metal/aps/inline-assembly.md:60
msgid "" msgid ""
"Run the example in QEMU with `make qemu_psci` under `src/bare-metal/aps/" "Run the example in QEMU with `make qemu_psci` under `src/bare-metal/aps/"
"examples`." "examples`."
msgstr "" msgstr ""
"مثال را در QEMU با `make qemu_psci` در زیر `src/bare-metal/aps/examples` "
"اجرا کنید."
#: src/bare-metal/aps/mmio.md:1 #: src/bare-metal/aps/mmio.md:1
msgid "Volatile memory access for MMIO" msgid "Volatile memory access for MMIO"
msgstr "" msgstr "دسترسی به حافظه فرار برای MMIO"
#: src/bare-metal/aps/mmio.md:3 #: src/bare-metal/aps/mmio.md:3
msgid "Use `pointer::read_volatile` and `pointer::write_volatile`." msgid "Use `pointer::read_volatile` and `pointer::write_volatile`."
msgstr "" msgstr "از `pointer::read_volatile` و `pointer::write_volatile` استفاده کنید."
#: src/bare-metal/aps/mmio.md:4 #: src/bare-metal/aps/mmio.md:4
msgid "Never hold a reference." msgid "Never hold a reference."
msgstr "" msgstr "هرگز reference‌ای را نگه ندارید."
#: src/bare-metal/aps/mmio.md:5 #: src/bare-metal/aps/mmio.md:5
msgid "" msgid ""
"`addr_of!` lets you get fields of structs without creating an intermediate " "`addr_of!` lets you get fields of structs without creating an intermediate "
"reference." "reference."
msgstr "" msgstr ""
"‏ `addr_of!` به شما امکان می‌دهد بدون ایجاد یک مرجع میانی، فیلدهایی از "
"ساختارها را دریافت کنید."
#: src/bare-metal/aps/mmio.md:10 #: src/bare-metal/aps/mmio.md:10
msgid "" msgid ""
"Volatile access: read or write operations may have side-effects, so prevent " "Volatile access: read or write operations may have side-effects, so prevent "
"the compiler or hardware from reordering, duplicating or eliding them." "the compiler or hardware from reordering, duplicating or eliding them."
msgstr "" msgstr ""
"دسترسی فرار (Volatile access): عملیات خواندن یا نوشتن ممکن است عوارض جانبی "
"داشته باشد، بنابراین از کامپایلر یا سخت‌افزار از مرتب‌سازی مجدد، کپی‌کردن یا "
"حذف آنها جلوگیری کنید."
#: src/bare-metal/aps/mmio.md:12 #: src/bare-metal/aps/mmio.md:12
msgid "" msgid ""
@ -16956,6 +16988,9 @@ msgid ""
"compiler may assume that the value read is the same as the value just " "compiler may assume that the value read is the same as the value just "
"written, and not bother actually reading memory." "written, and not bother actually reading memory."
msgstr "" msgstr ""
"معمولاً اگر بنویسید و سپس بخوانید، به عنوان مثال. از طریق یک reference، "
"کامپایلر ممکن است فرض کند که مقدار خوانده شده همان مقداری است که نوشته شده "
"است و در واقع خواندن memory را سخت‌تر نکند."
#: src/bare-metal/aps/mmio.md:15 #: src/bare-metal/aps/mmio.md:15
msgid "" msgid ""
@ -16963,28 +16998,37 @@ msgid ""
"this is unsound. Whenever a reference exist, the compiler may choose to " "this is unsound. Whenever a reference exist, the compiler may choose to "
"dereference it." "dereference it."
msgstr "" msgstr ""
"برخی از crateهای موجود برای دسترسی فَرار(volatile access) به سخت‌افزار دارای "
"referenceهایی هستند، اما این همیشه درست نیست. هر زمان که یک reference وجود "
"داشته باشد، کامپایلر ممکن است انتخاب کند که reference آن را لغو کند."
#: src/bare-metal/aps/mmio.md:18 #: src/bare-metal/aps/mmio.md:18
msgid "" msgid ""
"Use the `addr_of!` macro to get struct field pointers from a pointer to the " "Use the `addr_of!` macro to get struct field pointers from a pointer to the "
"struct." "struct."
msgstr "" msgstr ""
"از ماکرو `addr_of!` برای دریافت اشاره‌گرهای struct field از یک اشاره‌گر به "
"ساختار استفاده کنید."
#: src/bare-metal/aps/uart.md:1 #: src/bare-metal/aps/uart.md:1
msgid "Let's write a UART driver" msgid "Let's write a UART driver"
msgstr "" msgstr "بیایید یک درایور UART بنویسیم"
#: src/bare-metal/aps/uart.md:3 #: src/bare-metal/aps/uart.md:3
msgid "" msgid ""
"The QEMU 'virt' machine has a [PL011](https://developer.arm.com/" "The QEMU 'virt' machine has a [PL011](https://developer.arm.com/"
"documentation/ddi0183/g) UART, so let's write a driver for that." "documentation/ddi0183/g) UART, so let's write a driver for that."
msgstr "" msgstr ""
"این ماشین QEMU 'virt' یک [PL011](https://developer.arm.com/documentation/"
"ddi0183/g) به‌عنوان UART دارد، پس بیایید یک درایور برای آن بنویسیم."
#: src/bare-metal/aps/uart.md:9 #: src/bare-metal/aps/uart.md:9
#, fuzzy
msgid "/// Minimal driver for a PL011 UART.\n" msgid "/// Minimal driver for a PL011 UART.\n"
msgstr "" msgstr "/// Minimal driver for a PL011 UART.\n"
#: src/bare-metal/aps/uart.md:17 src/bare-metal/aps/better-uart/driver.md:13 #: src/bare-metal/aps/uart.md:17 src/bare-metal/aps/better-uart/driver.md:13
#, fuzzy
msgid "" msgid ""
"/// Constructs a new instance of the UART driver for a PL011 device at the\n" "/// Constructs a new instance of the UART driver for a PL011 device at the\n"
" /// given base address.\n" " /// given base address.\n"
@ -16997,28 +17041,45 @@ msgid ""
"process\n" "process\n"
" /// as device memory and not have any other aliases.\n" " /// as device memory and not have any other aliases.\n"
msgstr "" msgstr ""
"/// Constructs a new instance of the UART driver for a PL011 device at the\n"
" /// given base address.\n"
" ///\n"
" /// # Safety\n"
" ///\n"
" /// The given base address must point to the 8 MMIO control registers of "
"a\n"
" /// PL011 device, which must be mapped into the address space of the "
"process\n"
" /// as device memory and not have any other aliases.\n"
#: src/bare-metal/aps/uart.md:29 src/bare-metal/aps/better-uart/driver.md:25 #: src/bare-metal/aps/uart.md:29 src/bare-metal/aps/better-uart/driver.md:25
#, fuzzy
msgid "/// Writes a single byte to the UART.\n" msgid "/// Writes a single byte to the UART.\n"
msgstr "" msgstr "/// Writes a single byte to the UART.\n"
#: src/bare-metal/aps/uart.md:31 src/bare-metal/aps/better-uart/driver.md:27 #: src/bare-metal/aps/uart.md:31 src/bare-metal/aps/better-uart/driver.md:27
#, fuzzy
msgid "// Wait until there is room in the TX buffer.\n" msgid "// Wait until there is room in the TX buffer.\n"
msgstr "" msgstr "// Wait until there is room in the TX buffer.\n"
#: src/bare-metal/aps/uart.md:34 src/bare-metal/aps/uart.md:46 #: src/bare-metal/aps/uart.md:34 src/bare-metal/aps/uart.md:46
#, fuzzy
msgid "" msgid ""
"// SAFETY: We know that the base address points to the control\n" "// SAFETY: We know that the base address points to the control\n"
" // registers of a PL011 device which is appropriately mapped.\n" " // registers of a PL011 device which is appropriately mapped.\n"
msgstr "" msgstr ""
"// SAFETY: We know that the base address points to the control\n"
" // registers of a PL011 device which is appropriately mapped.\n"
#: src/bare-metal/aps/uart.md:37 src/bare-metal/aps/better-uart/driver.md:33 #: src/bare-metal/aps/uart.md:37 src/bare-metal/aps/better-uart/driver.md:33
#, fuzzy
msgid "// Write to the TX buffer.\n" msgid "// Write to the TX buffer.\n"
msgstr "" msgstr "// Write to the TX buffer.\n"
#: src/bare-metal/aps/uart.md:41 src/bare-metal/aps/better-uart/driver.md:37 #: src/bare-metal/aps/uart.md:41 src/bare-metal/aps/better-uart/driver.md:37
#, fuzzy
msgid "// Wait until the UART is no longer busy.\n" msgid "// Wait until the UART is no longer busy.\n"
msgstr "" msgstr "// Wait until the UART is no longer busy.\n"
#: src/bare-metal/aps/uart.md:55 #: src/bare-metal/aps/uart.md:55
msgid "" msgid ""
@ -17029,6 +17090,12 @@ msgid ""
"it is always safe to call `write_byte` later because we can assume the " "it is always safe to call `write_byte` later because we can assume the "
"necessary preconditions." "necessary preconditions."
msgstr "" msgstr ""
"توجه داشته باشید که `Uart::new` ناامن یا unsafe است در حالی که متد‌های دیگر "
"ایمن هستند. این به‌خاطر این است که تا زمانی که تماس گیرنده `Uart::new` تضمین "
"کند که الزامات ایمنی آن برآورده شده است (یعنی فقط یک نمونه از درایور برای یک "
"UART مشخص وجود دارد و هیچ چیز دیگری نام مستعار فضای آدرس آن را ندارد)، پس "
"همیشه می‌توان `write_byte` را بعداً فراخوانی کرد زیرا می‌توانیم پیش‌شرط‌های لازم "
"را فرض کنیم."
#: src/bare-metal/aps/uart.md:61 #: src/bare-metal/aps/uart.md:61
msgid "" msgid ""
@ -17036,47 +17103,63 @@ msgid ""
"`write_byte` unsafe), but that would be much less convenient to use as every " "`write_byte` unsafe), but that would be much less convenient to use as every "
"place that calls `write_byte` would need to reason about the safety" "place that calls `write_byte` would need to reason about the safety"
msgstr "" msgstr ""
"ما می‌توانستیم این کار را به صورت دیگری انجام دهیم ( ساخت `new` را ایمن کنیم، "
"اما `write_byte` را ناامن کنیم)، اما استفاده از آن بسیار راحت‌تر خواهد بود، "
"زیرا هر مکانی که `write_byte` را صدا می‌زند باید در مورد ایمنی یا safety "
"استدلال کند."
#: src/bare-metal/aps/uart.md:64 #: src/bare-metal/aps/uart.md:64
#, fuzzy
msgid "" msgid ""
"This is a common pattern for writing safe wrappers of unsafe code: moving " "This is a common pattern for writing safe wrappers of unsafe code: moving "
"the burden of proof for soundness from a large number of places to a smaller " "the burden of proof for soundness from a large number of places to a smaller "
"number of places." "number of places."
msgstr "" msgstr ""
"این یک الگوی رایج برای نوشتن بسته‌های ایمن کد ناامن است: انتقال بار اثبات "
"سلامت عملکردی از تعداد زیادی مکان به تعداد کمتری مکان."
#: src/bare-metal/aps/uart/traits.md:1 #: src/bare-metal/aps/uart/traits.md:1
msgid "More traits" msgid "More traits"
msgstr "" msgstr "‏ traitهای بیشتر"
#: src/bare-metal/aps/uart/traits.md:3 #: src/bare-metal/aps/uart/traits.md:3
msgid "" msgid ""
"We derived the `Debug` trait. It would be useful to implement a few more " "We derived the `Debug` trait. It would be useful to implement a few more "
"traits too." "traits too."
msgstr "" msgstr ""
"ما ویژگی `Debug` را استخراج کردیم. اجرای چند ویژگی دیگر نیز مفید خواهد بود."
#: src/bare-metal/aps/uart/traits.md:17 #: src/bare-metal/aps/uart/traits.md:17
#, fuzzy
msgid "" msgid ""
"// SAFETY: `Uart` just contains a pointer to device memory, which can be\n" "// SAFETY: `Uart` just contains a pointer to device memory, which can be\n"
"// accessed from any context.\n" "// accessed from any context.\n"
msgstr "" msgstr ""
"// SAFETY: `Uart` just contains a pointer to device memory, which can be\n"
"// accessed from any context.\n"
#: src/bare-metal/aps/uart/traits.md:25 #: src/bare-metal/aps/uart/traits.md:25
msgid "" msgid ""
"Implementing `Write` lets us use the `write!` and `writeln!` macros with our " "Implementing `Write` lets us use the `write!` and `writeln!` macros with our "
"`Uart` type." "`Uart` type."
msgstr "" msgstr ""
"پیاده‌سازی `Write`به ما امکان می‌دهد از ماکروهای `write!` و `writeln!` با تایپ "
"`Uart` خود استفاده کنیم."
#: src/bare-metal/aps/uart/traits.md:27 #: src/bare-metal/aps/uart/traits.md:27
msgid "" msgid ""
"Run the example in QEMU with `make qemu_minimal` under `src/bare-metal/aps/" "Run the example in QEMU with `make qemu_minimal` under `src/bare-metal/aps/"
"examples`." "examples`."
msgstr "" msgstr ""
"مثال را در QEMU با `make qemu_minimal` در زیر `src/bare-metal/aps/examples` "
"اجرا کنید."
#: src/bare-metal/aps/better-uart.md:1 #: src/bare-metal/aps/better-uart.md:1
msgid "A better UART driver" msgid "A better UART driver"
msgstr "" msgstr "یک درایور UART بهتر"
#: src/bare-metal/aps/better-uart.md:3 #: src/bare-metal/aps/better-uart.md:3
#, fuzzy
msgid "" msgid ""
"The PL011 actually has [a bunch more registers](https://developer.arm.com/" "The PL011 actually has [a bunch more registers](https://developer.arm.com/"
"documentation/ddi0183/g/programmers-model/summary-of-registers), and adding " "documentation/ddi0183/g/programmers-model/summary-of-registers), and adding "
@ -17084,228 +17167,249 @@ msgid ""
"read. Plus, some of them are bit fields which would be nice to access in a " "read. Plus, some of them are bit fields which would be nice to access in a "
"structured way." "structured way."
msgstr "" msgstr ""
"‏ PL011 در واقع [مجموعه رجیسترهای زیادی دارد](https://developer.arm.com/"
"documentation/ddi0183/g/programmers-model/summary-of-registers) و اضافه کردن "
"offset برای ساختن اشاره‌گرها برای دسترسی به آنها مستعدخطا است و حتی فرآبند "
"خواندن را می‌تواند پیچیده کند، برخی از آن فیلدها از نوع bit هستند که دسترسی "
"به آنها به روشی ساختاریافته خوب است."
#: src/bare-metal/aps/better-uart.md:7 #: src/bare-metal/aps/better-uart.md:7
msgid "Offset" msgid "Offset"
msgstr "" msgstr "افست"
#: src/bare-metal/aps/better-uart.md:7 #: src/bare-metal/aps/better-uart.md:7
msgid "Register name" msgid "Register name"
msgstr "" msgstr "نام رجیستر"
#: src/bare-metal/aps/better-uart.md:7 #: src/bare-metal/aps/better-uart.md:7
msgid "Width" msgid "Width"
msgstr "" msgstr "عرض"
#: src/bare-metal/aps/better-uart.md:9 #: src/bare-metal/aps/better-uart.md:9
msgid "0x00" msgid "0x00"
msgstr "" msgstr "0x00"
#: src/bare-metal/aps/better-uart.md:9 #: src/bare-metal/aps/better-uart.md:9
msgid "DR" msgid "DR"
msgstr "" msgstr "DR"
#: src/bare-metal/aps/better-uart.md:9 #: src/bare-metal/aps/better-uart.md:9
msgid "12" msgid "12"
msgstr "" msgstr "12"
#: src/bare-metal/aps/better-uart.md:10 #: src/bare-metal/aps/better-uart.md:10
msgid "0x04" msgid "0x04"
msgstr "" msgstr "0x04"
#: src/bare-metal/aps/better-uart.md:10 #: src/bare-metal/aps/better-uart.md:10
msgid "RSR" msgid "RSR"
msgstr "" msgstr "RSR"
#: src/bare-metal/aps/better-uart.md:10 #: src/bare-metal/aps/better-uart.md:10
msgid "4" msgid "4"
msgstr "" msgstr "4"
#: src/bare-metal/aps/better-uart.md:11 #: src/bare-metal/aps/better-uart.md:11
msgid "0x18" msgid "0x18"
msgstr "" msgstr "0x18"
#: src/bare-metal/aps/better-uart.md:11 #: src/bare-metal/aps/better-uart.md:11
msgid "FR" msgid "FR"
msgstr "" msgstr "FR"
#: src/bare-metal/aps/better-uart.md:11 #: src/bare-metal/aps/better-uart.md:11
msgid "9" msgid "9"
msgstr "" msgstr "9"
#: src/bare-metal/aps/better-uart.md:12 #: src/bare-metal/aps/better-uart.md:12
msgid "0x20" msgid "0x20"
msgstr "" msgstr "0x20"
#: src/bare-metal/aps/better-uart.md:12 #: src/bare-metal/aps/better-uart.md:12
msgid "ILPR" msgid "ILPR"
msgstr "" msgstr "ILPR"
#: src/bare-metal/aps/better-uart.md:12 src/bare-metal/aps/better-uart.md:15 #: src/bare-metal/aps/better-uart.md:12 src/bare-metal/aps/better-uart.md:15
msgid "8" msgid "8"
msgstr "" msgstr "8"
#: src/bare-metal/aps/better-uart.md:13 #: src/bare-metal/aps/better-uart.md:13
msgid "0x24" msgid "0x24"
msgstr "" msgstr "0x24"
#: src/bare-metal/aps/better-uart.md:13 #: src/bare-metal/aps/better-uart.md:13
msgid "IBRD" msgid "IBRD"
msgstr "" msgstr "IBRD"
#: src/bare-metal/aps/better-uart.md:13 src/bare-metal/aps/better-uart.md:16 #: src/bare-metal/aps/better-uart.md:13 src/bare-metal/aps/better-uart.md:16
msgid "16" msgid "16"
msgstr "" msgstr "16"
#: src/bare-metal/aps/better-uart.md:14 #: src/bare-metal/aps/better-uart.md:14
msgid "0x28" msgid "0x28"
msgstr "" msgstr "0x28"
#: src/bare-metal/aps/better-uart.md:14 #: src/bare-metal/aps/better-uart.md:14
msgid "FBRD" msgid "FBRD"
msgstr "" msgstr "FBRD"
#: src/bare-metal/aps/better-uart.md:14 src/bare-metal/aps/better-uart.md:17 #: src/bare-metal/aps/better-uart.md:14 src/bare-metal/aps/better-uart.md:17
msgid "6" msgid "6"
msgstr "" msgstr "6"
#: src/bare-metal/aps/better-uart.md:15 #: src/bare-metal/aps/better-uart.md:15
msgid "0x2c" msgid "0x2c"
msgstr "" msgstr "0x2c"
#: src/bare-metal/aps/better-uart.md:15 #: src/bare-metal/aps/better-uart.md:15
msgid "LCR_H" msgid "LCR_H"
msgstr "" msgstr "LCR_H"
#: src/bare-metal/aps/better-uart.md:16 #: src/bare-metal/aps/better-uart.md:16
msgid "0x30" msgid "0x30"
msgstr "" msgstr "0x30"
#: src/bare-metal/aps/better-uart.md:16 #: src/bare-metal/aps/better-uart.md:16
msgid "CR" msgid "CR"
msgstr "" msgstr "CR"
#: src/bare-metal/aps/better-uart.md:17 #: src/bare-metal/aps/better-uart.md:17
msgid "0x34" msgid "0x34"
msgstr "" msgstr "0x34"
#: src/bare-metal/aps/better-uart.md:17 #: src/bare-metal/aps/better-uart.md:17
msgid "IFLS" msgid "IFLS"
msgstr "" msgstr "IFLS"
#: src/bare-metal/aps/better-uart.md:18 #: src/bare-metal/aps/better-uart.md:18
msgid "0x38" msgid "0x38"
msgstr "" msgstr "0x38"
#: src/bare-metal/aps/better-uart.md:18 #: src/bare-metal/aps/better-uart.md:18
msgid "IMSC" msgid "IMSC"
msgstr "" msgstr "IMSC"
#: src/bare-metal/aps/better-uart.md:18 src/bare-metal/aps/better-uart.md:19 #: src/bare-metal/aps/better-uart.md:18 src/bare-metal/aps/better-uart.md:19
#: src/bare-metal/aps/better-uart.md:20 src/bare-metal/aps/better-uart.md:21 #: src/bare-metal/aps/better-uart.md:20 src/bare-metal/aps/better-uart.md:21
msgid "11" msgid "11"
msgstr "" msgstr "11"
#: src/bare-metal/aps/better-uart.md:19 #: src/bare-metal/aps/better-uart.md:19
msgid "0x3c" msgid "0x3c"
msgstr "" msgstr "0x3c"
#: src/bare-metal/aps/better-uart.md:19 #: src/bare-metal/aps/better-uart.md:19
msgid "RIS" msgid "RIS"
msgstr "" msgstr "RIS"
#: src/bare-metal/aps/better-uart.md:20 #: src/bare-metal/aps/better-uart.md:20
msgid "0x40" msgid "0x40"
msgstr "" msgstr "0x40"
#: src/bare-metal/aps/better-uart.md:20 #: src/bare-metal/aps/better-uart.md:20
msgid "MIS" msgid "MIS"
msgstr "" msgstr "MIS"
#: src/bare-metal/aps/better-uart.md:21 #: src/bare-metal/aps/better-uart.md:21
msgid "0x44" msgid "0x44"
msgstr "" msgstr "0x44"
#: src/bare-metal/aps/better-uart.md:21 #: src/bare-metal/aps/better-uart.md:21
msgid "ICR" msgid "ICR"
msgstr "" msgstr "ICR"
#: src/bare-metal/aps/better-uart.md:22 #: src/bare-metal/aps/better-uart.md:22
msgid "0x48" msgid "0x48"
msgstr "" msgstr "0x48"
#: src/bare-metal/aps/better-uart.md:22 #: src/bare-metal/aps/better-uart.md:22
msgid "DMACR" msgid "DMACR"
msgstr "" msgstr "DMACR"
#: src/bare-metal/aps/better-uart.md:22 #: src/bare-metal/aps/better-uart.md:22
msgid "3" msgid "3"
msgstr "" msgstr "3"
#: src/bare-metal/aps/better-uart.md:26 #: src/bare-metal/aps/better-uart.md:26
msgid "There are also some ID registers which have been omitted for brevity." msgid "There are also some ID registers which have been omitted for brevity."
msgstr "" msgstr "همچنین برخی از ID register هایی وجود دارد که برای اختصار حذف شده‌اند."
#: src/bare-metal/aps/better-uart/bitflags.md:3 #: src/bare-metal/aps/better-uart/bitflags.md:3
msgid "" msgid ""
"The [`bitflags`](https://crates.io/crates/bitflags) crate is useful for " "The [`bitflags`](https://crates.io/crates/bitflags) crate is useful for "
"working with bitflags." "working with bitflags."
msgstr "" msgstr ""
"این crate برای [`bitflags`](https://crates.io/crates/bitflags) جهت کار با "
"bitflags مفید است."
#: src/bare-metal/aps/better-uart/bitflags.md:10 #: src/bare-metal/aps/better-uart/bitflags.md:10
#, fuzzy
msgid "/// Flags from the UART flag register.\n" msgid "/// Flags from the UART flag register.\n"
msgstr "" msgstr "/// Flags from the UART flag register.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:14 #: src/bare-metal/aps/better-uart/bitflags.md:14
#, fuzzy
msgid "/// Clear to send.\n" msgid "/// Clear to send.\n"
msgstr "" msgstr "/// Clear to send.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:16 #: src/bare-metal/aps/better-uart/bitflags.md:16
#, fuzzy
msgid "/// Data set ready.\n" msgid "/// Data set ready.\n"
msgstr "" msgstr "/// Data set ready.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:18 #: src/bare-metal/aps/better-uart/bitflags.md:18
#, fuzzy
msgid "/// Data carrier detect.\n" msgid "/// Data carrier detect.\n"
msgstr "" msgstr "/// Data carrier detect.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:20 #: src/bare-metal/aps/better-uart/bitflags.md:20
#, fuzzy
msgid "/// UART busy transmitting data.\n" msgid "/// UART busy transmitting data.\n"
msgstr "" msgstr "/// UART busy transmitting data.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:22 #: src/bare-metal/aps/better-uart/bitflags.md:22
#, fuzzy
msgid "/// Receive FIFO is empty.\n" msgid "/// Receive FIFO is empty.\n"
msgstr "" msgstr "/// Receive FIFO is empty.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:24 #: src/bare-metal/aps/better-uart/bitflags.md:24
#, fuzzy
msgid "/// Transmit FIFO is full.\n" msgid "/// Transmit FIFO is full.\n"
msgstr "" msgstr "/// Transmit FIFO is full.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:26 #: src/bare-metal/aps/better-uart/bitflags.md:26
#, fuzzy
msgid "/// Receive FIFO is full.\n" msgid "/// Receive FIFO is full.\n"
msgstr "" msgstr "/// Receive FIFO is full.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:28 #: src/bare-metal/aps/better-uart/bitflags.md:28
#, fuzzy
msgid "/// Transmit FIFO is empty.\n" msgid "/// Transmit FIFO is empty.\n"
msgstr "" msgstr "/// Transmit FIFO is empty.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:30 #: src/bare-metal/aps/better-uart/bitflags.md:30
#, fuzzy
msgid "/// Ring indicator.\n" msgid "/// Ring indicator.\n"
msgstr "" msgstr "/// Ring indicator.\n"
#: src/bare-metal/aps/better-uart/bitflags.md:38 #: src/bare-metal/aps/better-uart/bitflags.md:38
msgid "" msgid ""
"The `bitflags!` macro creates a newtype something like `Flags(u16)`, along " "The `bitflags!` macro creates a newtype something like `Flags(u16)`, along "
"with a bunch of method implementations to get and set flags." "with a bunch of method implementations to get and set flags."
msgstr "" msgstr ""
"ماکرو `bitflags!` یک نوع جدید چیزی مانند`Flags(u16)` را به همراه تعدادی "
"پیاده‌سازی متد برای دریافت و تنظیم flagها ایجاد می‌کند."
#: src/bare-metal/aps/better-uart/registers.md:1 #: src/bare-metal/aps/better-uart/registers.md:1
msgid "Multiple registers" msgid "Multiple registers"
msgstr "" msgstr "رجیستر چندگانه"
#: src/bare-metal/aps/better-uart/registers.md:3 #: src/bare-metal/aps/better-uart/registers.md:3
msgid "" msgid ""
"We can use a struct to represent the memory layout of the UART's registers." "We can use a struct to represent the memory layout of the UART's registers."
msgstr "" msgstr ""
"ما می‌توانیم از یک ساختار برای نمایش طرح memory layout یک رجیستر UART استفاده "
"کنیم."
#: src/bare-metal/aps/better-uart/registers.md:43 #: src/bare-metal/aps/better-uart/registers.md:43
msgid "" msgid ""