音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

在easyARM2200上成功移植eCos

作者:sgwu 欄目:ARM技術(shù)
在easyARM2200上成功移植eCos
 
2樓: >>參與討論
zlgARM
RE:
如果樂意的話,你可以考慮將移植結(jié)果與大家交流

3樓: >>參與討論
foxqiu
能交流一下嗎?
 
4樓: >>參與討論
sgwu
移植中的問題
現(xiàn)在移植過程中還有一個(gè)難題,就是8019的移植。找到的ecos下8019的補(bǔ)丁代碼是在PC下的代碼。雖然有人聲稱移植成功,但它給出的具體方法好像并不適用于ARM,特別好像不適用于ZLG平臺。我正在研究,希望大家給點(diǎn)意見。

5樓: >>參與討論
slump
請教樓主
樓主有沒有測試uart0,1的驅(qū)動(dòng)?不是hal的串行驅(qū)動(dòng),是dev和io層的,
我測試下來uart0是ok的,uart1用中斷方式驅(qū)動(dòng)死活不行。后來查出是lpc
的bug在搞鬼,要改就要改dev中的16x5x通用驅(qū)動(dòng)。沒辦法,只好uart0用上層
驅(qū)動(dòng),uart1用hal驅(qū)動(dòng),反正用起來也一樣,等lpc修正了bug再說。
不知樓主是怎么解決這個(gè)問題的,希望可以多多交流:)

6樓: >>參與討論
slump
還是不行
看來不是硬件問題。
sgwu大哥能把變體抽象層(如果改動(dòng)的話)和平臺抽象層代碼給我看看嗎?

7樓: >>參與討論
深思
用 NE2000 的驅(qū)動(dòng),稍微修改讀寫就可以了。
晚上放44B0上移植參考。

8樓: >>參與討論
slump
郁悶郁悶
還是改驅(qū)動(dòng)吧,和16x5x包脫離關(guān)系。
怎么這個(gè)問題就我碰到?

9樓: >>參與討論
sgwu
謝謝slump
很好。我手上沒有合適的串口線,雌雄不對。所以一直不知道又UART1的問題。謝謝!

10樓: >>參與討論
slump
寫了一個(gè)串口驅(qū)動(dòng),解決了問題
半天趕工的,程序本身還很粗糙。但是能用(包括查詢方式和中斷方式)
#include <pkgconf/hal.h>
#include <pkgconf/infra.h>
#include <pkgconf/system.h>
#include <pkgconf/io_serial.h>
#include <pkgconf/io.h>
#include <pkgconf/kernel.h>

#include <cyg/io/io.h>
#include <cyg/hal/hal_io.h>
#include <cyg/hal/hal_intr.h>
#include <cyg/io/devtab.h>
#include <cyg/io/serial.h>
#include <cyg/infra/diag.h>
#include <cyg/infra/cyg_type.h>

#ifdef CYGPKG_IO_SERIAL_ARM_LPC2XXX

const unsigned int select_baud[] = {
    9999,
    50,
    75,
    110,
    134.5,
    150,
    200,
    300,
    600,
    1200,
    1800,
    2400,
    3600,
    4800,
    7200,
    9600,
    14400,
    19200,
    38400,
    57600,
    115200,
    230400
};

typedef struct lpc2xxx_serial_info {
    int            int_num;
    cyg_interrupt  serial_interrupt;
    cyg_handle_t   serial_interrupt_handle;
} lpc2xxx_serial_info;

static bool lpc2xxx_serial_init(struct cyg_devtab_entry *tab);

static Cyg_ErrNo lpc2xxx_serial_lookup(struct cyg_devtab_entry **tab,
                                    struct cyg_devtab_entry *sub_tab,
                                    const CHAR *NAME);
static Cyg_ErrNo lpc2xxx_serial_set_config(serial_channel *chan, cyg_uint32 key,
                                        const void *xbuf, cyg_uint32 *len);

static void lpc2xxx_serial_start_xmit(serial_channel *chan);
static void lpc2xxx_serial_stop_xmit(serial_channel *chan);

static cyg_uint32 lpc2xxx_serial_ISR(cyg_vector_t vector, cyg_addrword_t data);
static void       lpc2xxx_serial_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data);

static bool lpc2xxx_serial_putc_interrupt(serial_channel *chan, unsigned CHAR c);
static unsigned CHAR lpc2xxx_serial_getc_interrupt(serial_channel *chan);

static bool lpc2xxx_serial_putc_polled(serial_channel *chan, unsigned CHAR c);
static unsigned CHAR lpc2xxx_serial_getc_polled(serial_channel *chan);

#if (CYGNUM_IO_SERIAL_ARM_LPC2XXX_SERIAL0_BUFSIZE > 0)
static SERIAL_FUNS(lpc2xxx_serial_funs_interrupt,
                   lpc2xxx_serial_putc_interrupt,
                   lpc2xxx_serial_getc_interrupt,
                   lpc2xxx_serial_set_config,
                   lpc2xxx_serial_start_xmit,
                   lpc2xxx_serial_stop_xmit
                   );
#endif

#if (CYGNUM_IO_SERIAL_ARM_LPC2XXX_SERIAL0_BUFSIZE == 0)
static SERIAL_FUNS(lpc2xxx_serial_funs_polled,
                   lpc2xxx_serial_putc_polled,
                   lpc2xxx_serial_getc_polled,
                   lpc2xxx_serial_set_config,
                   lpc2xxx_serial_start_xmit,
                   lpc2xxx_serial_stop_xmit
                   );
#endif

static lpc2xxx_serial_info lpc2xxx_serial_info0 = {
    int_num : CYGNUM_HAL_INTERRUPT_UART1
};

#if CYGNUM_IO_SERIAL_ARM_LPC2XXX_SERIAL0_BUFSIZE > 0
static unsigned CHAR lpc2xxx_serial_out_buf0[CYGNUM_IO_SERIAL_ARM_LPC2XXX_SERIAL0_BUFSIZE];
static unsigned CHAR lpc2xxx_serial_in_buf0[CYGNUM_IO_SERIAL_ARM_LPC2XXX_SERIAL0_BUFSIZE];

static SERIAL_CHANNEL_USING_INTERRUPTS(lpc2xxx_serial_channel0,
                                       lpc2xxx_serial_funs_interrupt,
                                       lpc2xxx_serial_info0,
                                       CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_LPC2XXX_SERIAL0_BAUD),
                                       CYG_SERIAL_STOP_DEFAULT,
                                       CYG_SERIAL_PARITY_DEFAULT,
                                       CYG_SERIAL_WORD_LENGTH_DEFAULT,
                                       CYG_SERIAL_FLAGS_DEFAULT,
                                       &lpc2xxx_serial_out_buf0[0], sizeof(lpc2xxx_serial_out_buf0),
&n
11樓: >>參與討論
slump
2106 2132 2214上測試通過
中斷方式開始發(fā)送時(shí)使用了查詢,浪費(fèi)了一點(diǎn)cpu
繼續(xù)完善ing:)

12樓: >>參與討論
slump
驅(qū)動(dòng)補(bǔ)完
有興趣的可以mail聯(lián)系。
不過好象感興趣的不多:)

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
改動(dòng)《深入淺出ARM7—LPC213X/214X(上)》第163頁的程序4.11?
請問周公:為什么游些程序能燒進(jìn)去有些不能?
求助 沉思,zlgARM:中斷的困惑
請問周公,《深入淺出ARM7LPC213x/LPC214x下冊》有出版嗎
今天買了easyARM 2131 ~!
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號