|
|||||||||||
| 技術(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ù) |
| 2樓: | >>參與討論 |
| 作者: zlgARM 于 2005/9/3 18:35:00 發(fā)布:
RE: 如果樂意的話,你可以考慮將移植結(jié)果與大家交流 |
|
| 3樓: | >>參與討論 |
| 作者: foxqiu 于 2005/9/4 21:34:00 發(fā)布:
能交流一下嗎? |
|
| 4樓: | >>參與討論 |
| 作者: sgwu 于 2005/9/7 10:54:00 發(fā)布:
移植中的問題 現(xiàn)在移植過程中還有一個(gè)難題,就是8019的移植。找到的ecos下8019的補(bǔ)丁代碼是在PC下的代碼。雖然有人聲稱移植成功,但它給出的具體方法好像并不適用于ARM,特別好像不適用于ZLG平臺。我正在研究,希望大家給點(diǎn)意見。 |
|
| 5樓: | >>參與討論 |
| 作者: slump 于 2005/9/9 8:25:00 發(fā)布:
請教樓主 樓主有沒有測試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 于 2005/9/9 9:52:00 發(fā)布:
還是不行 看來不是硬件問題。 sgwu大哥能把變體抽象層(如果改動(dòng)的話)和平臺抽象層代碼給我看看嗎? |
|
| 7樓: | >>參與討論 |
| 作者: 深思 于 2005/9/9 10:10:00 發(fā)布:
用 NE2000 的驅(qū)動(dòng),稍微修改讀寫就可以了。 晚上放44B0上移植參考。 |
|
| 8樓: | >>參與討論 |
| 作者: slump 于 2005/9/9 15:08:00 發(fā)布:
郁悶郁悶 還是改驅(qū)動(dòng)吧,和16x5x包脫離關(guān)系。 怎么這個(gè)問題就我碰到? |
|
| 9樓: | >>參與討論 |
| 作者: sgwu 于 2005/9/12 11:08:00 發(fā)布:
謝謝slump 很好。我手上沒有合適的串口線,雌雄不對。所以一直不知道又UART1的問題。謝謝! |
|
| 10樓: | >>參與討論 |
| 作者: slump 于 2005/9/12 12:24:00 發(fā)布:
寫了一個(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 于 2005/9/12 12:30:00 發(fā)布:
在2106 2132 2214上測試通過 中斷方式開始發(fā)送時(shí)使用了查詢,浪費(fèi)了一點(diǎn)cpu 繼續(xù)完善ing:) |
|
| 12樓: | >>參與討論 |
| 作者: slump 于 2005/9/14 10:13:00 發(fā)布:
驅(qū)動(dòng)補(bǔ)完 有興趣的可以mail聯(lián)系。 不過好象感興趣的不多:) |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |