گروه فنی مهندسی آرکام

پروژه های دانشجویی ، آموزش ، مشاوره ، فروش آثار

گروه فنی مهندسی آرکام

پروژه های دانشجویی ، آموزش ، مشاوره ، فروش آثار

گروه فنی مهندسی آرکام

گرداننده و نگارنده : محمد نوری

البرز ، کرج ، گلشهر

09125623558
Nouri.Iut@Gmail.Com

جهت حمایت از این وبلاگ، ما را به یک فنجان چای داغ مهمان کنید.
6273-8111-1003-9762

دنبال کنندگان ۳ نفر
این وبلاگ را دنبال کنید

تبلیغات

آخرین نظرات

پیوندها

۴۵۱ مطلب با موضوع «گروه برق و کامپیوتر» ثبت شده است

#define IMAGE_MAGIC 0x27051956        /* U-Boot Magic Number */

به چه کار آید؟

Cortex M4

e200z0

Memory Management/Protection Unit

Y

N

Signal processing extension

Y

N

Pipeline

3-stage

4-stage

Branch unit processor

Not explicit

Y

Integer divide cycles

2 – 12 cycles

5 – 34 cycles

Endianness

Little

Big

با استفاده از فرمان mtdparts، مقدیر kerneloffset و rootfsoffset را می توانیم بدست آوریم...

loadaddr، آدرسی فضایی در حافظه RAM است که داده های دریافتی به صورت موقت در آن ذخیره (بارگذاری) می شود.

print loadaddr

//

tftp $(loadaddr) uimage

// U-Boot automatically sets the variables fileaddr and filesize to the file address and file size of the last file that was loaded in RAM.

nand erase $(kerneloffset) $(kernelsize )

بهتر است کل پارتیشن را پاک کنیم... بنابراین باید مقدار kernelsize  را از خروجی فرمان mtdparts بدست می آوریم...

 nand erase.part linux

nand write $(fileaddr) $(kerneloffset) $(fileaddr)

nand write ${fileaddr} linux ${filesize}

http://kavirelectronic.ir/eshop/%D9%85%D8%B1%D8%AA%D8%A8%D8%B7-%D8%A8%D8%A7-usb/1200127-pl2303hx-usb2rs232-usb-.html

اوریجینالشو خوب اومده!

تو شرکت... یهویی سیستمم می رفت هوا !... تمام کارام نابود می شد!... Blue Screen of Death...

کسی هم دنبال علتش نبود... یعنی براشون مهم نبود... می گفتن مشکل از درایور یا بورد...

هیچ ارزونی بی علت نیست...

Warning Notice:

Please be warned that counterfeit (fake) PL-2303HX (Chip Rev A) USB to Serial Controller ICs using Prolific's trademark logo, brandname, and device drivers, were being sold in the China market...

http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41

فرجام نافرجام بورد رَدِکسا... Radxa Rock... یک انتخاب اشتباه! کلاً به چینی ها نباید اعتماد کرد...

لایه فیزیکی اترنت دارای 4 زیرلایه می باشد. این لایه ها عبارتند از:

Physical Layer Signaling (PLS)

Attachment Unit Interface (AUI)

Medium Attachment Unit (MAU)

Medium Dependent Interface (MDI)

لایه MDI، مشخصات فیزیکی و الکتریکی واسط (Interface) شبکه را مشخص می کند...

 

MDI ports connect to MDIX ports via straight-through twisted pair cabling; both MDI-to-MDI and MDIX-to-MDIX connections use crossover twisted pair cabling.

https://en.wikipedia.org/wiki/Medium-dependent_interface

 

...

Kernel panic - not syncing: Requested init /linuxrc failed (error -2).

CPU: 0 PID: 1 Comm: swapper Not tainted 4.4.0-XXX #3

Hardware name: Freescale MXS (Device Tree)

[<c0015610>] (unwind_backtrace) from [<c001293c>] (show_stack+0x10/0x14)

[<c001293c>] (show_stack) from [<c00748bc>] (panic+0x98/0x208)

[<c00748bc>] (panic) from [<c047c31c>] (kernel_init+0x78/0xe4)

[<c047c31c>] (kernel_init) from [<c000ff50>] (ret_from_fork+0x14/0x24)

Rebooting in 1 seconds..

یک برنامه خوداتکا (Stand-Alone Program)، به برنامه رایانه ای اشاره دارد که برای اجرا به هیچ ماژول، تابع یا برنامه خارجی نیاز ندارد و به عبارت دیگر روی سخت افزاری فاقد سیستم عامل (ماشین لخت - Bare Machine) قابل اجراست. به عنوان مثال، برخی از برنامه هایی که برای پارتیشن بندی و فرمت کردن دیسک استفاده می کنیم، مانند Paragon Drive Backup...

 

 

 

 

 

 

 

1

2

3

^

 

 

 

 

 

 

 

4

5

6

˅

 

 

 

 

 

 

 

7

8

9

 

 

 

 

 

 

 

X

0

O

 

همه چیز درسته، شما فقط لازمه فلان تغییر رو تو کد بدید! این هم از کد، این هم پروگرمر...

تو می مونیو یه کد و یه پورت... دو هفته سر کاری... همه هم شاکی... خودتم گیج...

The flags field indicates what UDP checksum policy that should be used for a UDP session. This can be either to switch UDP checksumming off completely, or to use UDP Lite in which the checksum covers only parts of the datagram...

                                   

// main.c

static void vSetupIFTask (void *pvParameters) {

...

  while (1) {

    physts = lpcPHYStsPoll();

 

    if (physts & PHY_LINK_CHANGED) {

      if (physts & PHY_LINK_CONNECTED) {

        tcpip_callback_with_block((tcpip_callback_fn) netif_set_link_up, (void *) &lpc_netif, 1);

      }

      else {

        tcpip_callback_with_block((tcpip_callback_fn) netif_set_link_down, (void *) &lpc_netif, 1);

      }

      vTaskDelay(configTICK_RATE_HZ / 4);

    }

  }

}

اصولاً برای کار با آن و اجرای آن، ملزم به استفاده از سیستم عامل (RTOS) یا فایل سیستمی نیستیم... خودش یک Task Scheduler داخلی دارد... یعنی به یک Timer نیاز دارد... به عبارت دیگر، Stand Alone... اما!!! چنانچه به سیستم عامل نیاز داشته باشیم... یعنی اگر تعدادی Task داشته باشیم... تنها می توانیم از سیستم عامل RTX استفاده کنیم...

Creating a Network Application!

تو شرکت...؟؟؟، از RL-ARM (MDK v4) استفاده می کردیم، در آنجا هدف گرفتن داده های سنسورهای محیطی، ذخیره آنها... یک سیستم Data logger بود... سرعت هم زیاد اهمیت نداشت...!

RL: Real-Time Library

اوایل کارم... پولی بود... Crackشم پیدا نمی شد...

Migrate RTX to CMSIS-RTOS RTX

هنگام شروع به کار با MDK-ARM Version 5.00، این مهاجرت اجباری است!

RTX5 (Keil RTX v5) supplies both API layers:

1- CMSIS-RTOS v1

2- CMSIS-RTOS v2

#ifndef __LWIPOPTS_H__

#define __LWIPOPTS_H__

 

/**

 * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain

 * critical regions during buffer allocation, deallocation and memory

 * allocation and deallocation.

 */

#define SYS_LIGHTWEIGHT_PROT    0

 

#define ETHARP_TRUST_IP_MAC     0

#define IP_REASSEMBLY           0

#define IP_FRAG                 0

#define ARP_QUEUEING            0

#define TCP_LISTEN_BACKLOG      1

 

/**

 * NO_SYS==1: Provides VERY minimal functionality. Otherwise,

 * use lwIP facilities.

 */

#define NO_SYS                  0

int main(void)

{

  // add a long delay wait for the system to start up!

  unsigned int i,j;

  for(i=0;i<50;i++)

  {

    for(j=0;j < 65500;j++);

  }

 

  /* Initialize others */

   

  /* Infinite loop */

  while (1)

  { 

  }  

}

مدت زمان مورد نیاز برای بالا آمدن و شروع به کار قطعات ممکن است با یکدیگر متفاوت باشند... از جمله: PHYها... سوئیچ ها... و هر چیز مربوط به Ethernet...

با فراخوانی تابع vTaskStartScheduler() در تابع main کنترل روند اجرای برنامه را به FreeRTOS می سپاریم.. خب! برنامه باید در حالت non-RTOS نیز عملکرد صحیحی داشته باشد... از این امر باید مطمئن شوید...

سیستم عامل زمانبندی

خب! برای زمانبدی به یک تایمر احتیاج داریم...

EVERY RTOS PORT USES A TIMER TO GENERATE A PERIODIC TICK INTERRUPT. MANY PORTS USE ADDITIONAL INTERRUPTS TO MANAGE CONTEXT SWITCHING...

 

FreeRTOS - Basic directory structure

The core RTOS code is contained in three files, which are called tasks.c, queue.c and list.c. These three files are in the FreeRTOS/Source directory. The same directory contains two optional files called timers.c and croutine.c which implement software timer and co-routine functionality respectively.