eugene

    1. 关于STM32F102/103的USB模块和USB库函数 18/8439 stm32/stm8 2011-03-10
                                       楼主应该去当老师
    2. 去了研讨会是不是可以得开发套件 18/5085 stm32/stm8 2010-09-14
                                       
    3. 请教版主STM32开漏输出IO的电压容许值 29/18238 stm32/stm8 2010-09-06
                                       LS,谢谢你的回复,不过请你仔细看看前面的帖子再回复 1.AD脚电压不超过VDD这个不用你提醒,我一般不超过Vref 2.要是加钳位二极管,你说我配置成OD还有啥意思,还不如直接配置成推挽驱动三极管或者场效应管的了,费得着那样用么?
    4. 关于驱动开发的就业前景,待遇 29/10699 嵌入式系统 2010-06-24
      相对来书还可以,但是相关的公司比较少,所以主要还是看兴趣吧。
    5. 串口通信 16/6462 嵌入式系统 2010-06-12
      具体问题是什么?
    6. SDHC驱动添加问题 18/8435 嵌入式系统 2010-06-12
      SDHC_SC2440.dll这个驱动又是怎么回事呢?要能只用4G的SDHC卡,到底需要什么样的驱动文件啊,迷糊,望做过的朋友指点
    7. win7 注册表读写的问题 16/6705 嵌入式系统 2010-05-28
      有没有大人继续给一些win7下读写注册表的问题
    8. 这是你电路的某些限制决定的 也可以直接用与门和或门的芯片 74HC08 74HC32
    9. 关于STM8编译问题 3/8539 stm32/stm8 2010-05-25
                                       用的是V1。0的固体库
    10. 帮我看看USART发送的数据对吗 23/7400 stm32/stm8 2010-05-18
                                       这就对了,13楼已经说过,信号线上出现的是0x3E,即0x1F<<1
    11. 有1千块RMB倒可以试试。
    12. 工作太忙,今天来给大家送点分 15/4357 嵌入式系统 2010-03-31
      你说不顶能行吗?
    13. 可以再网上搜一下C#的自绘按钮的类! 我用的C++的
    14. 关于2410唤醒的疑惑 21/7465 嵌入式系统 2010-03-15
      fw.s ; Data Cache Characteristics. ; DCACHE_LINES_PER_SET_BITS       EQU     6 DCACHE_LINES_PER_SET            EQU     64 DCACHE_NUM_SETS                 EQU     8 DCACHE_SET_INDEX_BIT            EQU     (32 - DCACHE_LINES_PER_SET_BITS) DCACHE_LINE_SIZE                EQU     32 SLEEPDATA_BASE_VIRTUAL          EQU        0xac058000                ; keep in sync w/ config.bib SLEEPDATA_BASE_PHYSICAL         EQU        0x3c058000 ;** ; * CPUPowerOff - OFF button handler(Called from OEMPowerOff() in cfw.c) ; *     This routine is invoked when the OFF button is pressed. It is responsible ; *        for any final power off state and putting the cpu into standby. ; * ; *        Entry        none ; *        Exit        none ; *        Uses        r0-r3 ; *     LEAF_ENTRY CPUPowerOff     ; 1. Save register state and return address on the stack.     ;     stmdb   sp!, {r4-r12}                       stmdb   sp!, {lr} ;    b .     ; 2. Save MMU & CPU Registers to RAM.     ;     ldr     r3, =SLEEPDATA_BASE_VIRTUAL         ; base of Sleep mode storage     ldr     r2, =Awake_address     str     r2, [r3], #4                        ; save resume function address (virtual).         mrc     p15, 0, r2, c1, c0, 0     ldr     r0, =MMU_CTL_MASK     bic     r2, r2, r0     str     r2, [r3], #4                        ; save MMU control data.     mrc     p15, 0, r2, c2, c0, 0     ldr     r0, =MMU_TTB_MASK     bic     r2, r2, r0     str     r2, [r3], #4                        ; save TTB address.     mrc     p15, 0, r2, c3, c0, 0     str     r2, [r3], #4                        ; save domain access control.     str     sp, [r3], #4                        ; save SVC mode stack pointer.     mrs     r2, spsr     str     r2, [r3], #4                        ; save SVC status register.     mov     r1, #Mode_FIQ:OR:I_Bit:OR:F_Bit     ; enter FIQ mode, no interrupts.     msr     cpsr, r1     mrs     r2, spsr     stmia   r3!, {r2, r8-r12, sp, lr}           ; save the FIQ mode registers.     mov     r1, #Mode_ABT:OR:I_Bit:OR:F_Bit     ; enter ABT mode, no interrupts.     msr     cpsr, r1     mrs            r0, spsr     stmia   r3!, {r0, sp, lr}                   ; save the ABT mode Registers.     mov     r1, #Mode_IRQ:OR:I_Bit:OR:F_Bit     ; enter IRQ mode, no interrupts.     msr     cpsr, r1     mrs     r0, spsr     stmia   r3!, {r0, sp, lr}                   ; save the IRQ Mode Registers.     mov     r1, #Mode_UND:OR:I_Bit:OR:F_Bit     ; enter UND mode, no interrupts.     msr     cpsr, r1     mrs     r0, spsr     stmia   r3!, {r0, sp, lr}                   ; save the UND mode Registers.     mov     r1, #Mode_SYS:OR:I_Bit:OR:F_Bit     ; enter SYS mode, no interrupts.     msr     cpsr, r1     stmia   r3!, {sp, lr}                       ; save the SYS mode Registers.     mov     r1, #Mode_SVC:OR:I_Bit:OR:F_Bit     ; back to SVC mode, no interrupts.     msr     cpsr, r1                    ; 3. Compute the checksum on SleepData (verify integrity of data after resume).    ;     ldr     r3, =SLEEPDATA_BASE_VIRTUAL         ; get pointer to SLEEPDATA.     mov     r2, #0     ldr     r0, =(SLEEPDATA_SIZE-1)                 ; get size of data structure (in words). 30     ldr     r1, [r3], #4                        ; compute the checksum.     and     r1, r1, #0x1     mov     r1, r1, LSL #31     orr     r1, r1, r1, LSR #1     add     r2, r2, r1     subs    r0, r0, #1     bne     %b30             ldr     r0, =vGPIOBASE     str     r2, [r0, #oGSTATUS3]                ; save the checksum in the Power Manager Scratch pad register.     ; 4. Mask and clear all interrupts.     ;     ldr     r0, =vINTBASE     mvn     r2, #0     str     r2, [r0, #oINTMSK]     str     r2, [r0, #oSRCPND]     str     r2, [r0, #oINTPND]     ; 5. Flush caches and TLBs.     ;     bl      ARMClearUTLB     bl      ARMFlushICache     ldr     r0, = (DCACHE_LINES_PER_SET - 1)        ldr     r1, = (DCACHE_NUM_SETS - 1)        ldr     r2, =  DCACHE_SET_INDEX_BIT        ldr     r3, =  DCACHE_LINE_SIZE          bl      ARMFlushDCache     ; 6. Set external wake-up interrupts (EINT0-2: power-button and keyboard).     ;     ldr     r0, =vGPIOBASE     ldr     r1, =0x550a     str     r1, [r0, #oGPFCON] ;   ldr     r1, =0x55550100 ;   str     r1, [r0, #oGPGCON]     ; 7. Switch to power-off mode.     ;         ldr         r0, =vMISCCR                        ; hit the TLB         ldr                r0, [r0]         ldr         r0, =vCLKCON         ldr                r0, [r0]     ; **These registers are used later during power-off.     ;     ldr     r0, =vREFRESH                    ldr     r1, [r0]                            ; r1 = rREFRESH.     orr     r1, r1, #(1 0, SCKE=L during boot-up.     ; **These registers are used later during power-off.     ;     ldr     r4, =vCLKCON     ldr     r5, =0x7fff8                        ; power-off mode. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WinCE 3.00 assembler has some problem about ALIGN instruction. ; Sometimes it is not working in cache mode. So I modify to jump to ROM area. ; If the rom is EBOOT, the target address is 0x92001004. ; Else if the rom is NAND, the target address is 0x92000004. ;        ldr                r8, =0xEA000000 ;        add                r8, r8, #0x3f0 ;        add                r8, r8, #0xe                ; make value to 0xEA0003FE ;        ldr                r6, =0x92000000                ; make address to 0x9200 1004 or 0x9200 0004 ;        ldr     r7, [r6]                        ; Check ROM Address data, if 0xEA0003FE, it is EBOOT ;        cmp                r7, r8 ;        bne                %f50 ;        add                r6, r6, #0x1000                ; Because eboot startup code is located at 0x1000. ;50 ;        add                r6, r6, #0x4                ; ;        mov     pc, r6                                ; jump to Power off code in ROM         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;         b       SelfRefreshAndPowerOff                  ALIGN   32                      ; for I-Cache Line(32Byte, 8 Word) SelfRefreshAndPowerOff                ; run with Instruction Cache's code         str     r1, [r0]                ; Enable SDRAM self-refresh         str                r3, [r2]                ; MISCCR Setting         str     r5, [r4]                ; Power Off !!         b       . ; This point is called from EBOOT's startup code(MMU is enabled) ;       in this routine, left information(REGs, INTMSK, INTSUBMSK ...) Awake_address ;       1. Recover CPU Registers         ldr     r3, =SLEEPDATA_BASE_VIRTUAL                ; Sleep mode information data structure         add     r2, r3, #SleepState_FIQ_SPSR         mov     r1, #Mode_FIQ:OR:I_Bit:OR:F_Bit ; Enter FIQ mode, no interrupts         msr     cpsr, r1         ldr     r0,  [r2], #4         msr     spsr, r0         ldr     r8,  [r2], #4         ldr     r9,  [r2], #4         ldr     r10, [r2], #4         ldr     r11, [r2], #4         ldr     r12, [r2], #4         ldr     sp,  [r2], #4         ldr     lr,  [r2], #4 ;        mov     r1, #Mode_ABT:OR:I_Bit:OR:F_Bit ; Enter ABT mode, no interrupts         mov     r1, #Mode_ABT:OR:I_Bit                        ; Enter ABT mode, no interrupts         msr     cpsr, r1         ldr     r0, [r2], #4         msr     spsr, r0         ldr     sp, [r2], #4         ldr     lr, [r2], #4 ;        mov     r1, #Mode_IRQ:OR:I_Bit:OR:F_Bit ; Enter IRQ mode, no interrupts         mov     r1, #Mode_IRQ:OR:I_Bit                        ; Enter IRQ mode, no interrupts         msr     cpsr, r1         ldr     r0, [r2], #4         msr     spsr, r0         ldr     sp, [r2], #4         ldr     lr, [r2], #4 ;        mov     r1, #Mode_UND:OR:I_Bit:OR:F_Bit ; Enter UND mode, no interrupts         mov     r1, #Mode_UND:OR:I_Bit                        ; Enter UND mode, no interrupts         msr     cpsr, r1         ldr     r0, [r2], #4         msr     spsr, r0         ldr     sp, [r2], #4         ldr     lr, [r2], #4 ;        mov     r1, #Mode_SYS:OR:I_Bit:OR:F_Bit ; Enter SYS mode, no interrupts         mov     r1, #Mode_SYS:OR:I_Bit                        ; Enter SYS mode, no interrupts         msr     cpsr, r1         ldr     sp, [r2], #4         ldr     lr, [r2] ;        mov     r1, #Mode_SVC:OR:I_Bit:OR:F_Bit ; Enter SVC mode, no interrupts         mov     r1, #Mode_SVC:OR:I_Bit                        ; Enter SVC mode, no interrupts         msr     cpsr, r1         ldr     r0, [r3, #SleepState_SVC_SPSR]         msr     spsr, r0 ;       2. Recover Last mode's REG's, & go back to caller of CPUPowerOff()         ldr     sp, [r3, #SleepState_SVC_SP]         ldr     lr, [sp], #4         ldmia   sp!, {r4-r12}         mov     pc, lr                          ; and now back to our sponsors ; ;  MMU_WaitForInterrupt() from 2410slib.s (in bsp/others/test2410_r11 dirs) ; ;void MMU_WaitForInterrupt(void)    EXPORT MMU_WaitForInterrupt MMU_WaitForInterrupt            mcr  p15,0,r0,c7,c0,4         mov        pc, lr                                                                ;MOV_PC_LR         END 复制代码
    15. c++初学者适合的书或视屏教程 4/3110 嵌入式系统 2010-03-08
      去C/C++论坛吧
    16. 找一个出来,重新用应用写入,HIVE注册表重启,即可。
    17. 串口发送long类型数据 16/6022 嵌入式系统 2010-01-04
      用联合体最简单,不需要移位及运放,可靠性也更高,结构可定义为: typedef unsigned        long        uint32;     //32位 typedef        signed                long        sint32;     // typedef        unsigned        char        uint8;                //8位 typedef union {     sint32                DI              ;                                        //32位无符号     uint32                DW              ;                                        //32位有符号     struct     {         uint8        _byte3      ;                       uint8        _byte2      ;                       uint8        _byte1      ;                       uint8        _byte0      ;                   } ByteCode; } UN32;        复制代码 然后可以使用如下语句: UN32 tmp; tmp.DW = 0x7abcdeff; send(tmp.ByteCode._byte0); send(tmp.ByteCode._byte1); send(tmp.ByteCode._byte2); send(tmp.ByteCode._byte3); 复制代码 接收端可用类似如下语句,请注意这里仅为示意,实际代码不是这样: UN32 tmp; tmp.ByteCode._byte0 = SBUF; ... tmp.ByteCode._byte4 = SBUF; rcv_long_data = tmp.DW;复制代码
    18.                                  补充一下,keil版本为3.8a.
    19. 关于VirtualAlloc 函数的PAGE_NOACCESS问题: 10/7480 嵌入式系统 2009-12-28
      主要用在首先预留内存,后面再进行使用的情况,如下:      一个比较好的分配512块特殊内存的方法是这样做: #define PAGESIZE 1024   // Assume we're on a 1-KB page machine. // Reserve a region first. pMemBase = VirtualAlloc (NULL, PAGESIZE * 512, MEM_RESERVE,                          PAGE_NOACCESS); for (i = 0; i < 512; i++)     pMem = VirtualAlloc (pMemBase + (i*PAGESIZE), PAGESIZE,                             MEM_COMMIT, PAGE_READWRITE);      代码首先保留了一块区域,页面将在以后被提交。因为区域已经被先保留了,提交页就不受64-KB限制(译者注:只有保留页最小值受64KB限制),等等,如果你系统中有512KB的可用内存,分配将会成功。
    20. 28335的烧写 9/6746 微控制器 MCU 2009-12-25
      插件装了呀,大家谁有插件上传一下

最近访客

< 1/1 >

统计信息

已有87人来访过

  • 芯积分:--
  • 好友:--
  • 主题:10
  • 回复:64

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言