Information in this support solution applies to: C51 Version 6.00 I receive the following error when I link a very simple project in the EVAL version: FATAL ERROR L213:I/O ERROR ON WORK FILE: EXCEPTION 0029H: ACCESS TO FILE DENIED I've checked all the Environment Setup settings (TOOLS.INI or BIN/INC/LIB Folder) and everything seems OK. The autoexec.bat file settings: SET TEMP=C:\WINDOWS\TEMP SET TMP=C:\WINDOWS\TEMP Why am I receiving this error message?
Try to use a normal file name for your source code. The c51 use a console type compiler, so maybe it needs a 8.3 name format. Just a suggestion.
Did changing to 8.3 filenames fix this?
No, the C51 tools don't have an 8.3 restriction. Is the disk full?
Since you are using an EVAL Version you should simply use the current version V7.01. If this version still shows this problem we can start analysing it.
I have the same problem. I was building a very simple project... only one .a51 file: MOV R1,#3 END and when I tried to build it I got thhe following message: Build target 'Target 1' linking... BL51 BANKED LINKER/LOCATER V5.01 - SN: Eval Version COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2002 "test.obj" TO "test" RAMSIZE(256) *** FATAL ERROR L213: I/O ERROR ON WORK FILE: EXCEPTION 0029H: ACCESS TO FILE DENIED Target not created I am using win2000 and the version of the program is V7.01 eval...
EXCEPTION 0029H: ACCESS TO FILE DENIED This error is usually an indication of a permissions problem or of a problem with the temp folder. If your temp folder is read-only or if you do not have access to it, you could receive this error. Jon
I switched to using the uVision IDE and it builds just fine. It must have something to do to with the Cygnal front end. Note that the only draw back to this is the cygnal JTAG debug DLL is hideously slow...
I take that back. I updated to 6.23 and the build breaks again. I'm using Win2K as an administrator, if that matters. TEMP and TMP are defined and valid at the system level.
Do you have any write protected files in the project folder?
One more possible reason that happened to a colleague of mine, though with the actual output instead of the "work file": If there's a subdirectory in the target directory (temp, here) that happens to have the same name as what the compiler is trying to create, you'll also get a permission violation error.
The problem is that keil uses the enviormental variables defined by windows, but in windows xp, there are some local variables defined for the local user, wich are diferent from the main variables. Anyway what you have to do (if you have windows xp) is go to: CONTROLPANEL>SYSTEM>ADVANCEDOPTIONS> Once there, go to the envioremental variables button (at the end of the tab, the last button) and set the TMP and TEMP variables to a simple directory like c:\temp or c:\windows\temp, cause they usually point to a directory a little complex that may have something to do with the Documents and Settings Dir,so it may have some access permission rules.... ok, that's all. hope it works for you guys.
"CONTROLPANEL>SYSTEM>ADVANCEDOPTIONS>" Also available by right-clicking 'My Computer' on the 'Advanced' tab in 'Properties'
Once there, go to the envioremental variables button (at the end of the tab, the last button) and set the TMP and TEMP variables to a simple directory like c:\temp or c:\windows\temp, cause they usually point to a directory a little complex that may have something to do with the Documents and Settings Dir,so it may have some access permission rules.... Actually, that tip is more likely to cause this problem in the first place than to resolve it. The default %TEMP% on 2000 and XP is, indeed, in the "Documents and Settings" tree. But that's the right thing to do, because that's the only place every user is guaranteed to have write access to --- it's his private home directory. This may well not be the case for c:\windows\temp if you're on an NTFS file system, and even less likely for c:\temp. A fresh XP install, e.g., will not have a c:\temp in the first place, and if your admin creates it, it'll likely be off-limits for ordinary users. The only actual drawback with the system default for %TEMP%, if any, would be that it's in a path with whitespace in its name. Some tools can't deal with that, and fail miserably. But from what I see, Keil doesn't seem to have that problem. Not in its current versions, anyway.
"But from what I see, Keil doesn't seem to have that problem. Not in its current versions, anyway." There are some inconsistencies in the way Keil passess filenames to external tools - which can result in problems with spaces. :-(