-
的确是没见过iar for STM32
-
祝朋友们花团似锦、香飘四溢,给力2011,展望2012。。。。。
-
刚用STM32做过485,没发现任何问题
-
我打开了,就是可慢了,好多东西都不知道在哪里了??
-
不行啊 ,求高人指点!
-
获得硬盘序列号(原程序)
这是一个用端口对硬盘编程例子
本程序在必须在DOS下运行,我在qb4.5版本下运行通过
主板上共有两个IDE接口,每个接口上又分主、从,所以可以接4个IDE设备,这4个端口号各不同,本程序用端口1F0-1F7是主板上的第一个IDE接口上的主接口,最常用的就是这个了。别的只是端口号不一样,编程方法原理一样。
CODE: [Copy to clipboard]
--------------------------------------------------------------------------------
'获得硬盘序列号的程序(非逻辑盘卷标,有的把C盘的卷标说成是硬盘序列号)
'代码:QBASIC,运行环境:DOS
OUT &H1F6, &HA0
OUT &h1F2,1
OUT &H1F3, 1
OUT &h1F4,1
OUT &h1F5,1
OUT &H1F7, &HEC '获得硬盘信息的命令
DO WHILE flag &H58
f lag = INP(&H1F7)
if inkey$=chr$(27) then '如果按ESC键,终止程序
print "无法获得硬盘序列号"
end
end if
LOOP
re$ = SPACE$(18)
FOR i% = 1 TO 18
READ a$
H$ = CHR$(VAL("&H" + a$))
MID$(re$, i%, 1) = H$
NEXT i%
duan% = varSEG(re$):offe% = SADD(re$)
DEF SEG = duan%
print "本硬盘的序列号为 ";
FOR i = 1 TO 16
CALL Absolute(r%, offe%) '调用在qb中的内嵌汇编机器码
r1% = r% AND &HFF
r2% = (r% AND &HFF00) / &H100
IF i > 9 AND i < 15THEN PRINT CHR$(r1%); CHR$(r2%);
NEXT i
DEF SEG
END
'此DATA中的数据为机器码,用于读端口字数据(qb中的端口语句只能按字节读写端口,不能按字读写)
DATA 55,89,e5,ba,f0,01,ed,86,e0,8b,5e,06,89,07,5d,ca,02 ,00
'55 push bp
'89E5 mov bp, sp
'BAF001 mov DX, 01F0h
'ED in ax, dx
'86E0 xchg ah, al
'8B5E06 mov bx, [bp+06]
'8907 mov [BX], AX
'5D pop BP
'CA0200 ret 2
-
顶ddd
-
keil仿真用得真不爽,我打算去买个板子,大家说是买开发板好还是学习版好呢??给个意见,哈哈,谢啦
-
别51了,搞个大点的ARM7,有64个GPIO的那种~~~~~~~~~
嘿嘿。。。虽然那个了一点
-
uping
-
何宗健的书不错。乐呵呵
-
4楼别误导啊...
WATCH可以观察局部变量. 只是局部变量一般保存在寄存器中, 如果一个局部变量的操作完了, 寄存器装载别的东西去了. 局部变量就看不到了. 不如全局变量在静态变量区容易观察.
-
我想自己画一个slider 控件
先是贴一幅划槽 的图片,然后再贴一幅滑块的图片,但怎么让滑块的图片放在划槽 图片的上面,而不被遮挡?
-
友情帮顶下。
MARK.
-
/**********************************/
PUBLIC DWORD DSK_Init(DWORD dwContext)
{
//PDISK pDisk;
DWORD IDThread;
//HMODULE hmCore;
RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~01")));
//while(1); //LTH modify
if(PBT_InitializeAddresses()==FALSE )
return 0;
RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~02")));
PBT_EnableInterrupt();
RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~03")));
//从OAL请求一个SYSINTR值
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_PwrButtonIrq, sizeof(UINT32), &g_PwrButtonSysIntr, sizeof(UINT32), NULL))
{
RETAILMSG(1, (TEXT("ERROR: PwrButton: Failed to request sysintr value for sw_reset button interrupt.\r\n")));
return(0);
}
RETAILMSG(1,(TEXT("INFO: PwrButton: Mapped Irq 0x%x to SysIntr 0x%x.\r\n"), g_PwrButtonIrq, g_PwrButtonSysIntr));
//RETAILMSG(1,(TEXT("PwrButton Initialize ...")));
gPwrButtonIntrThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE) PBT_IntrThread, 0, 0, &IDThread);
RETAILMSG(1, (TEXT(":::PwrButton PBT_IntrThread ID = %x\r\n"), IDThread));
if (gPwrButtonIntrThread == NULL)
{
RETAILMSG(1, (TEXT(":::PwrButton CreateThread() Fail\r\n")));
KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,&g_PwrButtonSysIntr,sizeof(UINT32),NULL,0,NULL);
return 0;
}
gReadKeyEvent[0] = CreateEvent(NULL,FALSE,FALSE,NULL);
gReadKeyEvent[1] = CreateEvent(NULL,FALSE,FALSE,NULL);
RETAILMSG(1,(TEXT(":::pwrButton Initialize OK!!!!! ...")));
return TRUE;
}
-
屏幕清晰度还蛮高的
-
这样肯定不成鉴定完毕。
-
谢了兄弟,就是这个!
-
你输入help, 就知道VIVI支持那些命令了
Supervivi>0help
Usage:
flash [{cmds}] -- Manage Flash memory
cpu [{cmds}] -- Manage cpu clocks
bon [{cmds}] -- Manage the bon file system
reset -- Reset the system
param [eval|show|save [-n]|reset] -- set/get parameter
part [add|del|show|reset] -- Manage MTD partitions
mem [{cmds}] -- Manage Memory
loadyaffs {...} -- Load a yaffs image to Flash
markpart [-bad|-good] [partname1] [partname2] ...
-- mark blocks in a partition(s) as bad or good
menu
-- Give you a menu to use some functions
backup [-nc] [ ]
-- Send the context of nand flash to PC
through USB
-- '-n' : don't backup the oob
-- '-c' : Check whether the block is bad
restore [-n] [ ]
-- restore flash, get file from HOST thr
ough USb
-- '-n' : the file doesn't has context o
f oob
eboot -- Run Wince Ethernet Bootloader(eboot)
wince [ram] -- Run Wince from flash or ram
load {...} -- Load a file to RAM/Flash
go -- jump to
dump -- Display (hex dump) a range of memory.
call -- jump_with_return to
boot [{cmds}] -- Booting linux kernel
help [{cmds}] -- Help about help?
-
汇编调用C语言;C语言调用汇编一般都是用R0、R1、R2、R3来传参的。第一个参数放R0,第二个参数R1,第三个参数R2,第四个参数R3。