当前位置: 首页 > news >正文

MPC8360 MDS板复位配置与BCSR寄存器深度解析

1. 项目概述与核心价值

在嵌入式系统开发,尤其是基于PowerPC这类复杂SoC的硬件平台设计中,最让人“提心吊胆”的时刻莫过于上电和复位。板子一上电,处理器就像一张白纸,它怎么知道该从哪儿启动?时钟该跑多快?内存控制器该怎么配置?这些问题,都依赖于一个被称为“复位配置字”的初始参数集。今天,我们就以经典的MPC8360 MDS处理器板为例,深入拆解其硬件复位与配置机制。这不仅仅是阅读手册,更是理解一个嵌入式硬件平台从“无”到“有”的启动逻辑,对于硬件调试、系统移植和故障排查至关重要。

MPC8360 MDS板作为一款功能丰富的评估平台,其复位与配置机制设计得非常典型且具有代表性。它不仅仅是一个简单的上电复位按钮,而是集成了一套由专用复位控制器、可编程逻辑、拨码开关和软件可访问寄存器组成的完整控制系统。这套系统允许开发者在上电时通过硬件拨码选择多种启动配置源,在运行时通过寄存器进行动态控制,并通过多种复位信号(如硬复位、软复位)对系统状态进行精确干预。理解这套机制,意味着你掌握了让这块板子“听话”的钥匙,无论是进行裸机开发、操作系统移植,还是深入底层硬件调试,都能做到心中有数,手中有术。

2. 复位机制深度解析:从物理信号到逻辑流程

复位,对于嵌入式处理器而言,是一个将内部逻辑状态恢复到已知、确定初始值的过程。MPC8360的复位机制并非单一事件,而是一个包含多种信号类型、严格时序和配置加载的完整流程。

2.1 复位信号类型与功能差异

MPC8360 MDS板上定义了四种主要的复位/中断信号,分别对应不同的应用场景和复位深度:

SW1 (PRESET/Power-On-Reset):这是最彻底、最根本的复位。按下SW1,会触发一个完整的“上电复位”序列。它不仅复位MPC8360处理器核心,还会复位板上几乎所有其他组件,包括FPGA(内含BCSR)、Flash存储器以及可能连接的PIB(平台接口板)。其效果相当于重新给板子上电,所有动态存储内容(如SDRAM)都会丢失。在板卡插入PC(代理模式)时,这是唯一可用的手动复位按钮。

SW6 (HRESET/Hard Reset):硬复位。它主要作用于MPC8360处理器本身,会复位处理器内部的大部分硬件逻辑(但锁相环PLL逻辑通常保持,以维持时钟稳定)。最关键的是,HRESET会触发处理器重新采样并加载复位配置字。这意味着,如果你在系统运行过程中通过软件修改了BCSR中的某些配置位(如时钟分频比),然后触发一次HRESET,这些新配置就会生效。需要注意的是,HRESET也会复位DDR内存控制器的刷新逻辑,导致DDR SDRAM中的内容丢失。一个重要的硬件细节:HRESET信号是开漏输出。这意味着任何外部驱动源(如JTAG COP控制器)驱动该信号时,必须使用开漏门电路,否则可能因信号争用导致板卡逻辑或MPC8360芯片的永久性损坏。

SW7 (SRESET/Soft Reset):软复位。这是最“温和”的复位方式。它主要复位处理器的执行单元和部分核心逻辑,但会保持时钟、芯片选择信号以及SDRAM(如果已初始化)的内容。简单理解,SRESET更像是一个强制性的程序跳转,让程序计数器回到复位向量,而不会扰乱已经建立起来的内存环境和外设基础时钟配置。这对于调试时重启应用程序而不重新初始化整个硬件环境非常有用。

SW8 (NMI/Non-Maskable Interrupt):非屏蔽中断。严格来说,这不是复位,而是一个最高优先级的中断。按下SW8会向MPC8360发送一个电平触发的中断,通常用于程序执行的中止或紧急处理。板上的ABORT开关信号经过了消抖处理,确保触发可靠。

实操心得:复位按钮的“脾气”在实际调试中,这几个按钮的使用大有讲究。当程序“跑飞”但你想保留内存现场进行分析时,优先按SRESET。当修改了时钟或内存控制器等关键配置后,需要按HRESET使其生效。当系统完全“死机”,或者需要彻底重新初始化所有外设时,才动用PRESET。盲目使用PRESET会导致漫长的重新启动和初始化过程,降低调试效率。

2.2 复位配置字加载流程详解

复位配置字是MPC8360启动的“蓝图”。处理器在PORESET信号撤销(从低电平变为高电平)后,会立即开始加载RCW。RCW决定了处理器的核心时钟频率、总线频率、内存控制器模式、引导源顺序等关键参数。

MPC8360 MDS板提供了高度灵活的RCW加载方式,这是通过采样CFG_RESET[0:2]CFG_CLKIN_DIV这四个配置引脚的状态来实现的。这些引脚的状态由上电瞬间DIP开关(SW3)的设定决定。

RCW的三种加载路径:

  1. 通过BCSR(板控制与状态寄存器)加载:当CFG_RESET_SOURCE[0:2] = 000FCFG (SW9[3]) = 0时,RCW从FPGA内部的BCSR寄存器中加载。BCSR的初始值又来自另一组DIP开关。这是最常用、最直观的调试模式,因为你可以直接通过拨动开关改变配置。
  2. 通过并行Flash加载:当CFG_RESET_SOURCE[0:2] = 000FCFG (SW9[3]) = 1时,RCW从板载的并行Flash存储器的特定位置读取。这常用于产品化阶段,将固定配置烧录到Flash中。
  3. 通过I2C EEPROM加载:当CFG_RESET_SOURCE[0:2] = 001010时(区别在于预期的PCI时钟频率范围),RCW通过I2C1总线从外部的EEPROM中读取。这种方式节省引脚,常用于空间受限的设计。

复位时序分析:复位过程是一个精密的时序链。参考图5-2的时序图,其关键阶段如下:

  1. 电源稳定与PORESET:电源上电后,专用复位控制器芯片(MIC2774N)会保持PORESET信号为低电平至少300ms,以确保MPC8360、BCSR、Flash等芯片的供电完全稳定。
  2. 时钟稳定:在PORESET保持期间,输入时钟CLKIN必须达到稳定状态。
  3. 配置采样:在PORESET撤销前的瞬间,MPC8360采样CFG_RESET[0:2]CFG_CLKIN_DIV引脚,确定RCW的加载源和时钟分频模式。
  4. PLL锁定与HRESETPORESET撤销后,处理器内部PLL开始根据RCW中的配置进行锁相,以产生核心时钟。PLL锁定需要时间,在此期间HRESET信号需保持有效(低电平)。BCSR在完成自身初始化后,会通过拉高BCSR_Done信号来释放HRESET
  5. 配置加载与SRESETHRESET撤销后,处理器开始从选定的源(BCSR/Flash/I2C)加载RCW。加载完成后,SRESET信号被释放,处理器从复位向量开始执行第一条指令。

这个时序链的任何一个环节出错,都可能导致处理器无法正常启动。例如,如果CLKIN时钟在PORESET期间不稳定,或者PLL锁相失败,系统都会挂起。

3. 板控制与状态寄存器全解

BCSR是用户与MPC8360 MDS板硬件交互的软件接口,它集成在板载的FPGA中。通过本地总线(Local Bus)可以读写这些寄存器,从而实现动态控制LED、使能/禁用外设、触发复位、修改配置(需配合HRESET生效)等功能。

3.1 BCSR寄存器映射与访问基础

BCSR寄存器文件位于一个特定的片选(CS)空间内。由于本地总线CS空间的最小块为32KB,而BCSR本身很小,因此它在整个CS1区域内被多次镜像。只有地址线A[27-31]被用于寄存器选择,这意味着在访问时,只要高5位地址正确,低27位地址可以是任意值,都会映射到同一个物理寄存器。这简化了软件访问。

一个重要特性:BCSR中的控制位大多是低电平有效。即,将某一位写为0,通常意味着“使能”或“激活”该功能;写为1,则是“禁用”或“关闭”。在阅读手册和编程时需要特别注意。

3.2 关键BCSR寄存器功能详解

下面我们挑选几个最核心、最常用的BCSR寄存器进行深入剖析。

BCSR0-BCSR1:时钟与PLL配置这两个寄存器映射了RCW中关于时钟的关键参数。

  • LBCCM (BCSR0[0]):本地总线/次级DDR控制器时钟模式选择。
  • DDRCM (BCSR0[1]):DDR SDRAM时钟模式。高电平表示DDR控制器工作频率为csb_clk的两倍。
  • SPMF[0:3] (BCSR0[4:7]):系统PLL倍频因子。这直接决定了系统总线(CCB)的频率。例如,默认66MHz的CLKIN,若SPMF配置为1000(二进制,对应十进制8),则CCB频率为 66MHz * 8 = 528MHz,但实际会根据芯片限制分频到266MHz。
  • COREPLL[0:6] (BCSR1[1:7]):核心PLL倍频因子。决定e300核心的运行频率。例如,CLKIN=66MHzCOREPLL配置为某个值使核心频率达到533MHz。

注意事项:修改时钟配置的风险通过软件动态修改BCSR0/1中的时钟配置位是可行的,但必须非常谨慎。错误的倍频因子可能导致时钟频率超出处理器或内存的额定范围,引发系统不稳定甚至硬件损坏。安全的做法是:1) 确保新参数在芯片数据手册允许范围内;2) 修改后,必须触发一次HRESET(通过写BCSR11[4]或按SW6),让MPC8360重新采样并应用新配置。单纯写寄存器而不复位是无效的。

BCSR4:PCI与工作模式控制这个寄存器反映了板卡的工作模式,部分位可写。

  • PCIHOST (BCSR4[0]):只读位。指示板卡当前处于主机模式(1)还是代理模式(0)。当板卡独立使用或通过PIB连接时为主机模式;当插入PC的PCI插槽时,为代理模式。
  • PCIARB (BCSR4[2]):PCI仲裁器模式。代理模式下应设为0(外部仲裁),主机模式下可设为1(内部仲裁)。
  • COREDIS (BCSR4[4]):核心禁用模式。当该位置1时,e300核心在启动时被阻止取指,直到外部主设备(如通过PCI总线连接的调试主机)完成对它的配置。这用于高级调试场景。

BCSR8-BCSR9:外设接口控制这是控制板上两大关键外设——千兆以太网和UART的寄存器。

  • TSEC1M/TSEC2M (BCSR8[0:1], [2:3]):分别设置两个千兆以太网控制器的物理层模式,如RGMII、GMII、RTBI等。需要根据实际连接的PHY芯片型号进行设置。
  • TSEC1MST/TSEC2MST (BCSR8[4], [5]):设置以太网控制器为主/从模式。
  • GETH1EN/GETH2EN (BCSR9[0], [1]):低电平使能对应的以太网PHY收发器。这是软件控制网络接口通断的开关。
  • GETHRST (BCSR9[2]):以太网PHY复位。向此位写0会复位两个PHY。关键操作流程:当需要重新配置PHY时,应先写GETHRST=0,然后配置BCSR8中的模式位,最后再将GETHRST置1。在GETHRST从0跳变到1的上升沿,PHY会读取BCSR8中的新配置并初始化。
  • RS232EN (BCSR9[3]):使能板上的双路RS232收发器。禁用可以省电。

BCSR10:复位源与保护控制

  • CFG_RS[0:2] (BCSR10[1:3]):这三位反映了上电时DIP开关SW3[1-3]的设置,决定了RCW的加载源(BCSR/Flash/I2C)。软件可读,了解当前配置来源。
  • PCI_MODE (BCSR10[4]):选择PCI或ATM模式。手册中特别强调,不能简单地通过拨码开关SW9[1]将其置1来启用ATM模式。正确的操作序列是:在PORESET之后、设置PCIMODE位之前,先向特定内存偏移地址(0xXX00148C)依次写入0xEFE350100xFFE3A030。这是一个针对MPC8360内部UCC模块的特殊配置序列。
  • FLASHPRT (BCSR10[5]):Flash写保护。为0时保护,无法写入;为1时可写入。在进行固件更新时,需要先将其置1。

BCSR11:系统控制与软件复位这是最常用的动态控制寄存器之一。

  • PORESET (BCSR11[4])软件触发上电复位。向该位写入0,再写入1,会在满足时间窗口的条件下,在板上产生一个PORESET负脉冲。这等同于按下SW1按钮,但可由程序控制。
  • SWOP[0:2] (BCSR11[5:7]):只读位。直接读取旋转开关SW2的8个位置值(编码为3位二进制)。软件可以根据这个值改变程序流程,实现简单的硬件拨码选择功能。

4. 时钟系统与工作模式切换

时钟是系统运行的脉搏。MPC8360 MDS板的时钟设计支持两种基本工作模式,以适应不同的应用场景。

4.1 主机模式与代理模式时钟路径

主机模式:当板卡独立工作(Stand-Alone)或作为PIB平台的主处理器时,工作于主机模式。此时,板载的66MHz振荡器产生CLKIN时钟。CLKIN直接提供给MPC8360,同时通过一个板内约5英寸的走线环路连接到PCI_SYNC_OUT,再反馈到PCI_SYNC_IN引脚,为处理器的PCI/ATM模块提供参考时钟。CFG_CLKIN_DIV配置决定CLKIN是否被分频后使用。

代理模式:当板卡插入PC的PCI插槽或作为PIB上的一个从设备时,工作于代理模式。此时,板卡的PCI金手指(P3)被插入,导致CLKIN引脚在物理上被短接到地(GND)。PCI时钟由主机(PC或PIB主控板)通过PCI插槽的PCI_SYNC_IN引脚提供。因此,在代理模式下,系统的基准时钟来源于外部主机。

4.2 时钟配置实战与ATM模式特殊处理

板卡的默认时钟配置是:CLKIN = 66MHz,核心频率= 533MHz,CCB总线频率= 266MHz,DDR内存频率= 266MHz,QUICC Engine频率= 400MHz

一个关键场景:ATM模式下的时钟要求如果应用程序需要使用MPC8360的ATM(异步传输模式)功能,则必须确保PCI_SYNC_IN引脚接收到一个66MHz的时钟信号。在主机模式下,这自然满足(因为CLKIN就是66MHz)。但在代理模式下,CLKIN接地,时钟来自外部PCI槽。此时,用户必须确保外部主机提供的PCI时钟也是66MHz。如果外部时钟不是66MHz,ATM模块将无法正常工作。

启用ATM模式的正确步骤(代理模式下): 这是一个容易出错的点。不能仅仅依靠拨码开关SW9[1]或设置BCSR10[4] (PCI_MODE)

  1. 确保硬件上,外部提供的PCI时钟是66MHz。
  2. 在软件初始化序列中,在设置PCIMODE位为1之前,必须执行以下两次写操作:
    // 假设BCSR/相关寄存器映射的基础地址为 BASE_ADDR volatile uint32_t *reg = (volatile uint32_t *)(BASE_ADDR + 0x148C); *reg = 0xEFE35010; // 第一次写入 *reg = 0xFFE3A030; // 第二次写入
  3. 然后再将BCSR10[4](PCI_MODE)设置为1。 这两次神秘的写操作,实际上是配置MPC8360内部与UCC(通用通信控制器)和ATM模块相关的特定系统配置寄存器,使其时钟路径和模式适应ATM的要求。忽略这一步是导致ATM功能在代理模式下失效的常见原因。

5. 常见硬件控制操作与故障排查

掌握了原理和寄存器,最终要落实到操作上。以下是一些基于BCSR的典型硬件控制任务和问题排查方法。

5.1 典型控制任务流程

任务一:通过软件控制LED指示板上有两个LED:绿色(SIGNAL0)和红色(SIGNAL1),分别由BCSR9[5]BCSR9[6]控制(0点亮,1熄灭)。

// 点亮绿灯,熄灭红灯 uint8_t *bcsr9 = (uint8_t *)(BCSR_BASE + 9); *bcsr9 &= ~(1 << 5); // 清零bit5,点亮绿灯 *bcsr9 |= (1 << 6); // 置位bit6,熄灭红灯 // 点亮红灯,熄灭绿灯 *bcsr9 |= (1 << 5); // 置位bit5,熄灭绿灯 *bcsr9 &= ~(1 << 6); // 清零bit6,点亮红灯

任务二:复位并重新配置以太网PHY假设需要将TSEC1从RGMII模式切换到GMII模式。

uint8_t *bcsr8 = (uint8_t *)(BCSR_BASE + 8); uint8_t *bcsr9 = (uint8_t *)(BCSR_BASE + 9); // 1. 禁用PHY(可选,非必须) *bcsr9 |= (1 << 0); // 置位GETH1EN,禁用PHY1 // 2. 复位PHY *bcsr9 &= ~(1 << 2); // 清零GETHRST,发起复位 delay_us(100); // 保持复位至少一段时间,参考PHY手册 *bcsr9 |= (1 << 2); // 置位GETHRST,释放复位。在上升沿,PHY读取新配置。 // 3. 配置TSEC1为GMII模式 (BCSR8[0:1] = 10) *bcsr8 &= ~(0x3 << 0); // 清零bit0,1 *bcsr8 |= (0x2 << 0); // 设置为10,即GMII模式 // 4. 重新使能PHY *bcsr9 &= ~(1 << 0); // 清零GETH1EN,使能PHY1

任务三:触发一次软件硬复位

uint8_t *bcsr11 = (uint8_t *)(BCSR_BASE + 11); // 通过写BCSR11[4]产生HRESET脉冲。注意:此操作会导致程序执行中断。 *bcsr11 &= ~(1 << 4); // 写0 delay_us(10); // 保持低电平一段时间 *bcsr11 |= (1 << 4); // 写1,产生上升沿,触发复位 // 执行完上述操作后,处理器将立即开始HRESET流程

5.2 故障排查速查表

现象可能原因排查步骤
上电后无任何反应,LED不亮1. 电源未接通或电压异常。
2. 核心电源模块故障。
3. 复位控制器(MIC2774)故障,PORESET常低。
1. 测量电源输入及各路核心电压(1.2V, 3.3V, 2.5V等)是否正常。
2. 测量PORESET信号引脚,上电后应由低变高。若常低,检查复位电路。
上电后,仅电源指示灯亮,系统不启动1. 时钟未起振。
2. RCW配置错误,导致PLL无法锁定。
3. Boot Flash中无有效程序。
1. 用示波器测量CLKIN(主机模式)或PCI_SYNC_IN(代理模式)是否有66MHz时钟。
2. 检查DIP开关SW3,SW4,SW9,SW10,SW11的设置是否与预期配置一致。
3. 通过JTAG连接,检查处理器是否运行在调试模式,并读取复位向量处的指令。
系统启动后,以太网无法连接1. PHY未使能或模式配置错误。
2. 网络变压器或RJ45接口故障。
3. 软件驱动未正确初始化。
1. 检查BCSR9[0][1](GETHxEN)是否为0(使能)。
2. 检查BCSR8[0:3]中TSEC模式设置是否与PHY芯片型号匹配(如RGMII vs GMII)。
3. 测量PHY芯片的时钟、MDIO/MDC信号线。
按下HRESET按钮后系统挂死1. HRESET信号线路故障。
2. 新的RCW配置(如时钟倍频)导致系统不稳定。
3. DDR内存在HRESET过程中数据丢失,但软件未正确处理。
1. 用示波器观察按下HRESET时,MPC8360的HRESET引脚是否有干净的负脉冲。
2. 检查是否在运行时修改了BCSR0/1中的时钟配置,并确认新配置在芯片支持范围内。
3. 确保HRESET处理程序或操作系统能正确重新初始化DDR控制器。
无法通过JTAG调试器连接1. JTAG链未正确供电或信号连接错误。
2. 处理器处于低功耗或复位状态。
3.BCSR10[7] (JTAG2SEL)设置错误,选择了外部PMC卡JTAG链。
1. 检查JTAG接口的TRST,TCK,TMS,TDI,TDO信号连接及上拉电阻。
2. 检查BCSR11[0] (QUISCE)状态,确认处理器未进入不可调试的深度睡眠。
3. 确保BCSR10[7]为0,选择主处理器JTAG链。
在代理模式下,ATM功能失效1. 外部PCI时钟不是66MHz。
2. 未正确执行ATM模式使能序列。
1. 测量代理模式下PCI_SYNC_IN引脚的时钟频率。
2. 严格检查代码,确保在设置PCI_MODE位前,已向地址0xXX00148C写入了0xEFE350100xFFE3A030两个值。

5.3 调试心得与最佳实践

  1. 善用LED和旋转开关:在底层驱动开发初期,将BCSR9[5:6]控制的LED作为状态指示灯,将BCSR11[5:7]读取的旋转开关值作为配置参数,可以快速验证BCSR的读写功能,并实现简单的多模式测试,无需依赖串口打印。
  2. 配置变更的“复位纪律”:牢记一个原则:修改时钟相关(BCSR0/1)、启动源相关(BCSR10[1:3])或外设模式相关(BCSR8)的配置后,必须触发一次HRESET才能生效。而修改外设使能(如BCSR9[0,1,3])或LED状态,则是立即生效的。
  3. 理解“代理模式”的局限性:在代理模式下,SW6(HRESET)和SW7(SRESET)按钮是无效的。此时若需要硬复位,只能通过SW1(PORESET)或软件写BCSR11[4]来实现。同时,时钟源变为外部提供,在设计依赖特定时钟频率的功能(如ATM)时要格外注意。
  4. HRESET的开漏特性:如果计划通过自定义电路或扩展板来驱动HRESET信号,必须使用开漏(Open-Drain)或集电极开路(Open-Collector)输出电路,并接上拉电阻。直接使用推挽输出驱动HRESET线,是损坏板卡的捷径。
  5. 文档版本与硬件版本:本文内容基于MPC8360 MDS Processor Board, Rev. A.1。不同版本的板卡,BCSR寄存器的定义或偏移地址可能有细微差别。在进行任何关键操作前,务必核对手中板卡的准确硬件版本和对应的用户手册。
http://www.jsqmd.com/news/1036164/

相关文章:

  • 2026上海进口板材官方授权参考清单,爱格持证4家双授权品牌2家 - 设计本
  • Temporal 服务器源码架构分析
  • 2026年河南汝瓷礼品定制哪家好?源头工厂深度横评与官方对接指南 - 优质企业观察收录
  • Android AlarmManager - AlarmManager 初识、精确闹钟权限、闹钟覆盖
  • 011、反激变压器的匝比计算
  • 2026年河南汝瓷礼品定制哪家好?源头工厂深度横评与企业采购避坑指南 - 优质企业观察收录
  • 儒意电影发布超级娱乐空间2.0战略,以超级场景与超级IP双轮驱动,AI赋能文娱全产业链
  • 【课程设计/毕业设计】基于 Python+Django 的高校请假信息统计可视化平台的设计与实现 基于 Python+Django 的大学生请假台账可视化管理系统【附源码、数据库、万字文档】
  • Grok 4 Heavy深度解析:多智能体协同如何重构AI工程实践
  • 3个颠覆性功能:重新定义你的音频创作体验
  • StarCore SC100链接器深度解析:从符号解析到缓存优化的嵌入式DSP开发实践
  • 如何解决网盘下载限速问题?8大平台直链下载助手终极指南
  • MQX RTOS任务管理、调度与内存同步机制深度解析
  • 我的AI Agent7天零基础入门实战计划
  • VALMET ND9106HX8T 阀门定位器实战应用与故障排查指南
  • 6月淮北黄金回收市场实测观察:卖金套路多,市民如何避坑? - 微城市网络
  • 终极宝可梦合法性解决方案:PKHeX自动合规插件完全指南
  • 无锡视频拍摄公司排行:基于服务与案例的客观盘点 - 起跑123
  • 制袋机行业标杆:正威制袋机技术领先的绿色包装选择 - 速递信息
  • 强烈推荐:智能电视最全ADB软件合集!可以给电视或者盒子安装软件的工具!安卓端电脑端都有
  • 深入解析I2C总线:从基础协议到多控制器通信与实战调试
  • 2026 上海小型冷库安装公司电话,保鲜冷库安装服务咨询指南 - 品牌2026
  • 2026年6月重磅速报:高端腕表养护必读——北京亨得利手表维修收费价格表深度拆解 - 亨得利官方售后
  • CIO 的第一视角:旧式企业 IM 正在拖慢业务决策的三重死结
  • Python爬虫接入站大爷代理IP完整教程(附可运行代码)|两种授权模式全覆盖,自带反爬防封禁策略
  • 解决“找不到求解器”错误:环境变量PATH配置与跨平台调试指南
  • 5分钟打造你的Obsidian个人知识管理中心:告别笔记混乱,开启高效学习新纪元
  • 【多智能体控制】基于预定时间非干扰形成控制开放多智能体系统Matlab仿真
  • 2026年全国家庭教育优质课程服务机构排行及适配指南 - 互联网科技品牌测评
  • 2026年,热门AI搜索优化企业名声几何?