专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
修改UBOOT和LINUX调试串口(TI达芬奇芯片--DM6467)
2019-07-27 17:18
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
4579
13
1772
1.1 概述
TI针对DM6467提供的UBOOT和内核默认都是串口0作为调试串口输出的,但现在我需要使用DM6467的UART0的modem功能,所以修改代码,改变调试串口为串口2。
需要修改的主要有几部分内容:
1. UBL 代码(这部分代码在刚上电的时候,初始化CPU和拷贝UBOOT到DDR,打印信息只有很少,所以不做修改)。
2. UBOOT代码。
3. linux内核驱动。
使用的代码及版本请参考:
http://processors.wiki.ti.com/index.php/DaVinci_PSP_03.01_Beta_(r31)_Release_Notes
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
白丁野老
2019-07-28 02:40
我的修改如下:
1 static void davinci_hd_psc_enable ( void )
2 {
3 unsigned int alwaysonpdnum = 0;
4
5 /* Note this function assumes that the Power Domains are alread on */
6 REG(PSC_ADDR+0xA00+4*14) |= 0x03; /* EMAC */
7 REG(PSC_ADDR+0xA00+4*15) |= 0x03; /* VDCE */
8 REG(PSC_ADDR+0xA00+4*16) |= 0x03; /* Video Port */
9 REG(PSC_ADDR+0xA00+4*17) |= 0x03; /* Video Port */
10 REG(PSC_ADDR+0xA00+4*20) |= 0x03; /* DDR2 */
11 REG(PSC_ADDR+0xA00+4*21) |= 0x03; /* EMIFA */
12 REG(PSC_ADDR+0xA00+4*26) |= 0x03; /* UART0 */
13 REG(PSC_ADDR+0xA00+4*27) |= 0x03; /* UART1 */
14 REG(PSC_ADDR+0xA00+4*28) |= 0x03; /* UART2 */
15 REG(PSC_ADDR+0xA00+4*31) |= 0x03; /* I2C */
16 REG(PSC_ADDR+0xA00+4*33) |= 0x03; /* GPIO */
17 REG(PSC_ADDR+0xA00+4*34) |= 0x03; /* TIMER0 */
18 REG(PSC_ADDR+0xA00+4*35) |= 0x03; /* TIMER1 */
19
20 /* Set PTCMD.GO to 0x1 to initiate the state transtion for Modules in
21 * the ALWAYSON Power Domain
22 */
23 REG(PSC_PTCMD) = (1<<alwaysonpdnum);
24
25 /* Wait for PTSTAT.GOSTAT0 to clear to 0x0 */
26 while(! (((REG(PSC_PTSTAT) >> alwaysonpdnum) & 0x00000001) == 0));
27
28 /* Enable GIO3.3V cells used for EMAC (???) */
29 REG(VDD3P3V_PWDN) = (1<<27); //disable clkout0
30
31 /* Select UART function on UART0 */
32 REG(PINMUX0) &= ~(0x0000003f << 18);
34 REG(PINMUX1) = ((1<<4)|(1<<2)|(1<<0));
35
36 /* Enable USB */
37 REG(PINMUX0) &= ~(0x80000000);
38
39 /* Set the Bus Priority Register to appropriate value */
40 REG(VBPR) = 0x20;
41 }
复制代码
加载中...
查看其它13个回答
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
- 1 static void davinci_hd_psc_enable ( void )
- 2 {
- 3 unsigned int alwaysonpdnum = 0;
- 4
- 5 /* Note this function assumes that the Power Domains are alread on */
- 6 REG(PSC_ADDR+0xA00+4*14) |= 0x03; /* EMAC */
- 7 REG(PSC_ADDR+0xA00+4*15) |= 0x03; /* VDCE */
- 8 REG(PSC_ADDR+0xA00+4*16) |= 0x03; /* Video Port */
- 9 REG(PSC_ADDR+0xA00+4*17) |= 0x03; /* Video Port */
- 10 REG(PSC_ADDR+0xA00+4*20) |= 0x03; /* DDR2 */
- 11 REG(PSC_ADDR+0xA00+4*21) |= 0x03; /* EMIFA */
- 12 REG(PSC_ADDR+0xA00+4*26) |= 0x03; /* UART0 */
- 13 REG(PSC_ADDR+0xA00+4*27) |= 0x03; /* UART1 */
- 14 REG(PSC_ADDR+0xA00+4*28) |= 0x03; /* UART2 */
- 15 REG(PSC_ADDR+0xA00+4*31) |= 0x03; /* I2C */
- 16 REG(PSC_ADDR+0xA00+4*33) |= 0x03; /* GPIO */
- 17 REG(PSC_ADDR+0xA00+4*34) |= 0x03; /* TIMER0 */
- 18 REG(PSC_ADDR+0xA00+4*35) |= 0x03; /* TIMER1 */
- 19
- 20 /* Set PTCMD.GO to 0x1 to initiate the state transtion for Modules in
- 21 * the ALWAYSON Power Domain
- 22 */
- 23 REG(PSC_PTCMD) = (1<<alwaysonpdnum);
- 24
- 25 /* Wait for PTSTAT.GOSTAT0 to clear to 0x0 */
- 26 while(! (((REG(PSC_PTSTAT) >> alwaysonpdnum) & 0x00000001) == 0));
- 27
- 28 /* Enable GIO3.3V cells used for EMAC (???) */
- 29 REG(VDD3P3V_PWDN) = (1<<27); //disable clkout0
- 30
- 31 /* Select UART function on UART0 */
- 32 REG(PINMUX0) &= ~(0x0000003f << 18);
- 34 REG(PINMUX1) = ((1<<4)|(1<<2)|(1<<0));
- 35
- 36 /* Enable USB */
- 37 REG(PINMUX0) &= ~(0x80000000);
- 38
- 39 /* Set the Bus Priority Register to appropriate value */
- 40 REG(VBPR) = 0x20;
- 41 }
复制代码一周热门 更多>