-
刚开始学就有这个水平,还不错
-
如果MCU没有任何复位装置的话,上电状态不固定,会从任意程序段执行,并且寄存器内容不确定,不过现在基本上多有内部复位,很难实验了。
-
就算是cec也要用代码实体或者动态库的。如果是加入CEC之后又有了动态库,就不需要修改Platform.reg和bib文件了。因为装上CEC之后直接右键点击添加就相当于添加了reg和bib中的信息。
-
这个队列是这样定义的,数组中的一个元素始终保留不用。
当队列为空时,rear的值必须比front小1
也就是
(rear + 1)%QUEUE_SIZE == front
当满足下列条件时,队列为“满”
(rear + 2)%QUEUE_SIZE == front
之所以在结构体中引进了queue_len,是为了队列大小的灵活性,它只在注册的时候写,然后不会再变。
-
哈哈,我也有过,当时是在2ms喂狗可行,在100ms就不行,看PDF好几遍才发现问题,看资料太不认真了!
-
帮你顶
-
听说以色列的个人单兵作战系统里用的是它
-
引用 12 楼 feihu521a 的回复:
引用 11 楼 feishanm 的回复:
WINCE上应该可以用ASP+COM来实现
对,可以在EVC下写个com组件实现控制LED灯的操作,然后通过as页面调用COM组件实现。
比较偷懒的方法,asp中调用,在com组件中,写文件数据。用个应用程序,不断地读文件内容,来操作LED灯的变化。
-
问题解决了
原来不小心把硬件的某条线弄断后没有接回去
-
估计楼主是用了三星最新出的flash,后缀是UOD的,修改bootloader的NAND ID号,重编bootloader,重编工程,重生成NK,问题解决。
-
大多数开发商做的BSP的驱动很相似,因为大都是EOM给的,然后自己稍微改一下,所以,你的应该也不例外,参考一下别的BSP,改改地址就差不多!!
-
arm也可以当单片机用的(裸奔)
-
我不知道你以后要用什么上层的操作系统,我这里以vxWorks的pci驱动开发流程来说,vxWorks 在系统启动的过程中,对所有的pci 设备进行扫描,每个设备都在本地地址空间上分配IO空间和内存空间,之后到系统启动后,在通过PCI的设备ID和vender ID去找到这个设备,读取它的基址寄存器得到需要访问的基地址,这样通过这个地址就能对这个PCI设备进行访问。
一般一个PCI设备都是实现一个特定地功能的,例如一个网卡,它是实现一个网络数据接收、发送的功能的,这样就需要有一个网络芯片来实现这个功能,但是这个网络芯片需要通过一个PCI设备端的芯片来实现和CPU处的PCI主端的连接,一个这个pci设备端是一个实现PCI功能的设备(目前是PCI9052/4等芯片),在来说网络芯片,网络芯片为了实现网络功能,就有一堆寄存器来实现这个网络功能,我们只要把这些寄存器的地址都映射到pci总线上,CPU端就可以访问了;那个pci设备端芯片就是把这些寄存器的房屋基地址放到pci配置空间的基地址寄存器中;在回过头看,那个通过ID找到那个基地址就可以对网络芯片进行操作了,从而实现网络驱动就有方法了。
在windows下一样的,需要先找到设备,找到配置空间才能对设备进行操作。
我只能说这么多了,PCI的内容太多了,在这里说不太清。
-
高通的的芯片
郁闷啊,没有模块的详细资料,只有几个AT指令
-
我看过BSP而已,并且我也在选个ARM11 做新产品。
你加我QQ吧,在我博客左侧有,我想请教你一些marvell芯片的问题,
-
再说判断TXE。即Tx DR Empty,发送寄存器空。当使能TXEIE后,只要Tx DR空了,就会产生中断。所以,发送完字符串后必须关掉,否则会导致重复进入中断。这也是和TC不同之处。
发送函数如下:
/*******
功能:中断方式发送字符串.采用判断TC的方式.即 判断 发送后中断 位.
输入:字符串的首地址
输出:无
*******/
void USART_SendDataString( u8 *pData )
{
pDataByte = pData;
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);//只要发送寄存器为空,就会一直有中断,因此,要是不发送数据时,把发送中断关闭,只在开始发送时,才打开。
}
中断处理函数如下:
/********
* Function Name : USART1_IRQHandler
* Description : This function handles USART1 global interrupt request.
* Input : None
* Output : None
* Return : None
********/
void USART1_IRQHandler(void)
{
if( USART_GetITStatus(USART1, USART_IT_TXE) == SET )
{
if( *pDataByte == '\0' )//待发送的字节发到末尾NULL了
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);//因为是 发送寄存器空 的中断,所以发完字符串后必须关掉,否则只要空了,就会进中断
else
USART_SendData(USART1, *pDataByte++ );
}
}
在串口初始化函数中就不用打开TXE的中断了(是在发送函数中打开的)如下:
/************
名称: USART_Config
功能: 设置串口参数
输入: 无
输出: 无
返回: 无
************/
void USART_Config()
{
USART_InitTypeDef USART_InitStructure;//定义一个包含串口参数的结构体
USART_InitStructure.USART_BaudRate = 9600; //波特率9600
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//8位数据位
USART_InitStructure.USART_StopBits = USART_StopBits_1;//1位停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//无校验
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//输入加输出模式
USART_InitStructure.USART_Clock = USART_Clock_Disable;//时钟关闭
USART_InitStructure.USART_CPOL = USART_CPOL_Low;
USART_InitStructure.USART_CPHA = USART_CPHA_2Edge;
USART_InitStructure.USART_LastBit = USART_LastBit_Disable;
USART_Init(USART1, &USART_InitStructure);//设置到USART1
USART_Cmd(USART1, ENABLE); //使能USART1
}
-
在网上下吧,应该有这样的
-
想想办法,5米不难,要加硬件
-
当然不行,不包括物理层
就像STM带网卡的型号要挂PHY芯片一样。
-
哎。不符合