C och Assembler för sig

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Nerre
Inlägg: 27182
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: C och Assembler för sig

Inlägg av Nerre »

När man skriver #include så kan man skriva #include <fil.h> eller #include "fil.h".

Jag minns inte vilken som är vilken, men den ena är en sökväg (d.v.s. skriver du bara fil.h letar den bara i aktuellt bibliotek) och den andra innebär att kompilatorn (preprocessorn egentligen) söker igenom alla include-sökvägar efter filen.
Användarvisningsbild
Icecap
Inlägg: 26628
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: C och Assembler för sig

Inlägg av Icecap »

#include "xxx.h" använder man när man har "speciella"/egna filer som ligger ett specifikt ställe.
#include <xxx.h> används när filen ligger i "standardbiblioteket".

Har man alltså behov av stdio.h (som har med t.ex. printf att göra) använder man:
#include <stdio.h>

Men har man en egen fil (kanske med hårdvaradefinitioner) som ligger samma ställe som projektet:
#include "Hardware_Definitions.h"
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: C och Assembler för sig

Inlägg av sodjan »

> löste det problem genom att lägga in sökvägarna i BUILD OPTION, INCLUDE etc...

OK, verkar ju vara första stället att prova.
Jag tolkade dina tidigare inlägg som att du hade fixat det långt tidigare...


> ;{
> BANK0 macro
> ^------
> Error[1] C:\MPLAB\Macro\Instructions.asm 8 : Syntax error

Var kommer ";{" från ?
Det borde väl inte finnas i en ASM fil !?
Eller försöker du fortfarande köra inline-ASM ?
Var det inte det som du inte ville göra ?
Användarvisningsbild
JockeE
Inlägg: 330
Blev medlem: 4 augusti 2004, 08:46:50

Re: C och Assembler för sig

Inlägg av JockeE »

;{ och ;} kan finnas i assemblerfiler om man använder code folding.
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: C och Assembler för sig

Inlägg av sodjan »

> ...om man använder code folding.

Och det gör SmourF ?

OK, då undrar jag hur filen ser ut samt vilket verktyg som ger felmeddelandet.
SmourF
Inlägg: 268
Blev medlem: 13 april 2004, 15:33:58
Ort: Jönköping
Kontakt:

Re: C och Assembler för sig

Inlägg av SmourF »

hej igen,

det har omdiskuterats, och allt är rätt hittils, använder mig av "code folding", blir sjukt mycket krångligare annars,

sodjan: ska se om jag kan ge dig det du behöver se, skrik till annars, om jag har missat något,

FELMEDDELANDET:

Kod: Markera allt

Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\MPLAB\16F877A\blinktest.mcs".
Clean: Done.
Executing: "C:\CC5X\CC5X.EXE" 16F877ATMPO_C.c -CC -fINHX8M -p16F877A -I"C:\CC5X" -a -L -Q -V -FM
CC5X Version 3.3H, Copyright (c) B Knudsen Data, Norway 1992-2009
 --> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim.
16F877ATMPO_C.c:

;{
BANK0	macro
     	    ^------
Error[1] C:\MPLAB\Macro\Instructions.asm 8 : Syntax error
 (The expression must be corrected. The marker ^------ shows
 the approximate position where CC5X gives up. The documentation
 should be checked if the cause is not obvious)

Error options: -ew: no warning details  -ed: no error details  -eL: list details
BUILD FAILED: Mon Feb 23 22:04:08 2009
KODEN "instructions.asm", eller början, allt är ju samma om man säger så, och det funkar i vanlig assembler,

Kod: Markera allt

; #######################################
; ######## INSTRUCTIONS     #############
; #######################################
;
; #### BANK ####
;{
BANK0	macro
	bcf	STATUS, RP0		; Reset RP0 bit = Bank0
	endm
	  	 
BANK1	macro
	bsf	STATUS, RP0		; Set RP0 bit = Bank1
	endm
;}
; ¤¤¤¤ BANK ¤¤¤¤
om du behöver mer saker att titta på hojta till, förstod inte riktigt vad du menade med... "vilket verktyg som ger felmeddelandet."

tack så mycket!

MVH SmourF
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: C och Assembler för sig

Inlägg av vfr »

Frågan är om du kan använda assemblermakron i inline assembler. Nu vet jag inte hur din C-kompilator funkar där, men jag skulle nog varit tveksam till det rent allmänt.
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: C och Assembler för sig

Inlägg av sodjan »

OK, jag fattade att du ville bygga C och ASM *separat* och sedan länka ihop det.
Det vore bra att få ett klargörande om det är det du vill göra eller inte !
Kan det vara så svårt !?

*OM* du vill köra inline-asm så får du väl hålla dig de regler som CC5X ställer upp.

Vad har "instructions.asm" att göra med "16F877ATMPO_C.c" t.ex ?

> förstod inte riktigt vad du menade med... "vilket verktyg..."

MPASM, CC5X eller något annat. Vad vet jag...
SmourF
Inlägg: 268
Blev medlem: 13 april 2004, 15:33:58
Ort: Jönköping
Kontakt:

Re: C och Assembler för sig

Inlägg av SmourF »

vfr: jag är också tveksam, där av tråden, för om man bygger seperat borde man kunna :)

sodjan: helt rätt, men vi gick rätt in i inline assembler, och frågan är om man kan använda macron,

CC5X skriver inte att man inte kan använda macron, tror jag inte, inte så som jag ser på macron iaf :(

citering från manualen
Features:
• many assembly formats
• equ statements can be converted to variable definitions
• macro and conditional assembly capabilities
• call C functions and access C variables
• C style comments is possible
• optional optimization
• optional automatic bank and page updating
då kan man väl börja inrikta sig på att bygga seperat som det var tänkt från början då, fanns ju ett litet kapitel som du hänvisade till, som jag läste igenom igår, men blev "lost" när jag insåg det var massa H-filer, hehe, men ska kika igenom det en gång till, det exemplet,

om du har erfarenhet av det får du gärna dela med dig dock :)

MVH SmourF ;)
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: C och Assembler för sig

Inlägg av sodjan »

Bara du bestämmer dig !
Jag har frågat i massor av inlägg vad det är du vill göra, men
det har inte varit tydligt. Rubriken på tråden säger en sak,
men dina kodexempel säger något annat...

Du får väll kolla upp vad de menar med ett "macro" i samband
med inline-asm. Det måste ju inte vara detsamma som MPASM
menar med ett "macro". Det enda jag hittar i manualen är att
ett C-macro kan innehålla inline-asm...
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: C och Assembler för sig

Inlägg av vfr »

Det som kan menas med makro vid inline assembler skulle junna vara vanliga typedefs. Dessa är ju egentligen en form av makron i C som hanteras av preprocessorn.
sodjan
EF Sponsor
Inlägg: 43245
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: C och Assembler för sig

Inlägg av sodjan »

Exakt, så *kan* man tolka dokumentationen. Och det är det som det utryckligen står
att det är supportat. Ingenstans står det något om "vanliga MPASM-macron", varken att det
fungerar eller att det inte fungerar. Som jag förstår det så körs inline-asm via någon
egen funktion i CC5X och det som gäller för MPASM gäller inte alls då...
SmourF
Inlägg: 268
Blev medlem: 13 april 2004, 15:33:58
Ort: Jönköping
Kontakt:

Re: C och Assembler för sig

Inlägg av SmourF »

sodjan och vfr: glömmer alltid säga tack, tack för din/eran hjälp, tror jag är med nu, och så som jag tänkt blanda blir inte möjligt helt enkelt, så det blir assembler med macro eller C,

tackar (Y)

det skulle finnas sån där "tack" knapp som vissa forum har, hade varit mycket smidigt :)

MVH SmourF
Skriv svar