完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 一只耳朵怪 于 2018-6-20 15:19 编辑
请问各位:这里的PROFILE是做什么用的?这些值是根据什么确定的? /* REVIST : check posibility of PROFILE_(x) syntax usage */ #define PROFILE_NONE -1 /* Few EVM doesn't have profiles */ #define PROFILE_0 (0x1 << 0) #define PROFILE_1 (0x1 << 1) #define PROFILE_2 (0x1 << 2) #define PROFILE_3 (0x1 << 3) #define PROFILE_4 (0x1 << 4) #define PROFILE_5 (0x1 << 5) #define PROFILE_6 (0x1 << 6) #define PROFILE_7 (0x1 << 7) #define PROFILE_ALL 0xFF 比如 [uart1_wl12xx_init, DEV_ON_BASEBOARD, (PROFILE_0 | PROFILE_3 | PROFILE_5)] uart1是根据什么选的PROFILE_0 | PROFILE_3 | PROFILE_5,还有,uart1明明接在daughterboard,为什么这里是DEV_ON_BASEBOARD? |
|
相关推荐
4个回答
|
|
这个profile的值,决定了一些管脚的pinmux配置,从而使得这个GPEVM板能够进行更多功能的验证。具体的profile值对应的pinmux的配置信息可以参考:
http://processors.wiki.ti.com/index.php/AM335x_General_Purpose_EVM_CPLD 这个是wl12xx模块吧,没仔细看过,但这个wireless的模块是在baseboard上面有插槽接口的。建议你仔细看一下原理图,是不是被复用了。 |
|
|
|
hwjj940056201 发表于 2018-6-20 03:18 您好,首先感谢您的回复,这个不是uart1吗?它是这么定义的: static struct pinmux_config uart1_wl12xx_pin_mux[] = [ ["uart1_ctsn.uart1_ctsn", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT], ["uart1_rtsn.uart1_rtsn", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT], ["uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL], [NULL, 0], ]; 跟这个复用,但是profibus_pin_mux不在gen_purp_evm_dev_cfg数组里,应该不会被调用吧 static struct pinmux_config profibus_pin_mux[] = [ ["uart1_rxd.pr1_uart0_rxd_mux1", OMAP_MUX_MODE5 | AM33XX_PIN_INPUT], ["uart1_txd.pr1_uart0_txd_mux1", OMAP_MUX_MODE5 | AM33XX_PIN_OUTPUT], ["mcasp0_fsr.pr1_pru0_pru_r30_5", OMAP_MUX_MODE5 | AM33XX_PIN_OUTPUT], [NULL, 0], ]; 我还有一些问题 1.uart1需要在硬件上做处理吗?还是只要配置正确,不被复用,就能正常使用? 2.uart1的配置过程,步骤能给我讲讲吗? 3.uart0是在哪里初始化的,我在board-am335xevm.c上没有找到 PS:不好意思,问题有点多,但是我实在是不懂,我在别的帖子问,也没人告诉我,烦请您耐心解答,万分感谢! |
|
|
|
键盘侠Alex 发表于 2018-6-20 03:23 1. 我刚翻了一下原理图,UART1的硬件设计在BASEBOARD上面。不是,我的意思是说,你注意pin脚的功能复用。被复用的pin脚只要配置正确就能正常使用。 2. 参考TRM的UART章节。 3. 这个初始化,应该在最初的阶段就进行了。 |
|
|
|
hwjj940056201 发表于 2018-6-20 03:42 您好,感谢您的解答,这是默认的配置,这么配置正确吗?应该怎么确认呢?还有关于profile的值,我看不大明白,您能给我举个例子吗?比如就拿uart1来说 (PROFILE_0 | PROFILE_3 | PROFILE_5) ,设置了哪些pinmux? board-am335xevm.c: static struct pinmux_config uart1_wl12xx_pin_mux[] = [ ["uart1_ctsn.uart1_ctsn", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT], ["uart1_rtsn.uart1_rtsn", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT], ["uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP], ["uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL], [NULL, 0], ]; static void uart1_wl12xx_init(int evm_id, int profile) [ setup_pin_mux(uart1_wl12xx_pin_mux); ] [uart1_wl12xx_init, DEV_ON_BASEBOARD, (PROFILE_0 | PROFILE_3 | PROFILE_5)], mux33xx.c: _AM33XX_MUXENTRY(UART1_CTSN, 0, "uart1_ctsn", NULL, NULL, "i2c2_sda", "spi1_cs0", NULL, NULL, "gpio0_12"), _AM33XX_MUXENTRY(UART1_RTSN, 0, "uart1_rtsn", NULL, NULL, "i2c2_scl", "spi1_cs1", NULL, NULL, "gpio0_13"), _AM33XX_MUXENTRY(UART1_RXD, 0, "uart1_rxd", "mmc1_sdwp", NULL, "i2c1_sda", NULL, "pr1_uart0_rxd_mux1", NULL, "gpio0_14"), _AM33XX_MUXENTRY(UART1_TXD, 0, "uart1_txd", "mmc2_sdwp", NULL, "i2c1_scl", NULL, "pr1_uart0_txd_mux1", NULL, "gpio0_15"), omap_hwmod_33xx_data.c: /* uart1 */ static struct omap_hwmod_dma_info uart1_edma_reqs[] = [ [ .name = "tx", .dma_req = 26, ], [ .name = "rx", .dma_req = 27, ], [ .dma_req = -1 ] ]; static struct omap_hwmod_addr_space am33xx_uart1_addr_space[] = [ [ .pa_start = 0x44E09000, .pa_end = 0x44E09000 + SZ_8K - 1, .flags = ADDR_TYPE_RT, ], [ ] ]; static struct omap_hwmod_ocp_if am33xx_l4_wkup__uart1 = [ .master = &am33xx_l4wkup_hwmod, .slave = &am33xx_uart1_hwmod, .clk = "uart1_ick", .addr = am33xx_uart1_addr_space, .user = OCP_USER_MPU, ]; static struct omap_hwmod_irq_info am33xx_uart1_irqs[] = [ [ .irq = 72 ], [ .irq = -1 ] ]; static struct omap_hwmod_ocp_if *am33xx_uart1_slaves[] = [ &am33xx_l4_wkup__uart1, ]; static struct omap_hwmod am33xx_uart1_hwmod = [ .name = "uart1", .class = &uart_class, .clkdm_name = "l4_wkup_clkdm", .mpu_irqs = am33xx_uart1_irqs, .main_clk = "uart1_fck", .sdma_reqs = uart1_edma_reqs, .prcm = [ .omap4 = [ .clkctrl_offs = AM33XX_CM_WKUP_UART0_CLKCTRL_OFFSET, .modulemode = MODULEMODE_SWCTRL, ], ], .slaves = am33xx_uart1_slaves, .slaves_cnt = ARRAY_SIZE(am33xx_uart1_slaves), ]; |
|
|
|
只有小组成员才能发言,加入小组>>
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
1912 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3669 浏览 4 评论
5042 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1741 浏览 1 评论
9426 浏览 8 评论
CC3100BOOST使用CC3200lunchXL进行烧录
690浏览 2评论
738浏览 1评论
TMS320F28034: 利用C2prog通过SCI给TMS320F28034烧录程序,出现错误提示:Bootloading... failed (invalid echo)!
709浏览 1评论
求DLPC350 Programmer’s Guide User's Guide 中文版说明书
1211浏览 1评论
1794浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-14 22:37 , Processed in 0.786138 second(s), Total 85, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号