Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
Projet_Pico_ordi_B6
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Man hing Ling
Projet_Pico_ordi_B6
Commits
7d3787d4
Commit
7d3787d4
authored
1 year ago
by
chayrai
Browse files
Options
Downloads
Patches
Plain Diff
avancee systeme de fichiers pour carte mere
parent
ee403771
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
SD/Makefile
+1
-1
1 addition, 1 deletion
SD/Makefile
SD/Sd2Card.c
+6
-6
6 additions, 6 deletions
SD/Sd2Card.c
SD/Sd2Card.h
+2
-2
2 additions, 2 deletions
SD/Sd2Card.h
SD/picofs.c
+165
-50
165 additions, 50 deletions
SD/picofs.c
with
174 additions
and
59 deletions
SD/Makefile
+
1
−
1
View file @
7d3787d4
...
@@ -6,7 +6,7 @@ export TARGET_ARCH = -mmcu=$(MCU)
...
@@ -6,7 +6,7 @@ export TARGET_ARCH = -mmcu=$(MCU)
export
CFLAGS
=
-Wall
-I
.
-DF_CPU
=
16000000
-Os
-DDEBUG
-DTEST_WRITE
-DTEST_READ
#-g
export
CFLAGS
=
-Wall
-I
.
-DF_CPU
=
16000000
-Os
-DDEBUG
-DTEST_WRITE
-DTEST_READ
#-g
export
LDFLAGS
=
-g
$(
TARGET_ARCH
)
-lm
-Wl
,--gc-sections
# -Os
export
LDFLAGS
=
-g
$(
TARGET_ARCH
)
-lm
-Wl
,--gc-sections
# -Os
TARGET
=
fileSystem
TARGET
=
picofs
TERM
=
/dev/ttyUSB0
TERM
=
/dev/ttyUSB0
CPPFLAGS
=
-mmcu
=
$(
MCU
)
CPPFLAGS
=
-mmcu
=
$(
MCU
)
PGMER
=
-c
stk500v1
-b
57600
-P
$(
TERM
)
PGMER
=
-c
stk500v1
-b
57600
-P
$(
TERM
)
...
...
This diff is collapsed.
Click to expand it.
SD/Sd2Card.c
+
6
−
6
View file @
7d3787d4
...
@@ -294,7 +294,7 @@ info->partialBlockRead_ = value;
...
@@ -294,7 +294,7 @@ info->partialBlockRead_ = value;
*/
*/
uint8_t
readData
(
SD_info
*
info
,
uint32_t
block
,
uint16_t
offset
,
uint16_t
count
,
uint8_t
*
dst
)
{
uint8_t
readData
(
SD_info
*
info
,
uint32_t
block
,
uint16_t
offset
,
uint16_t
count
,
uint8_t
*
dst
)
{
if
(
count
==
0
)
return
true
;
if
(
count
==
0
)
return
true
;
if
((
count
+
offset
)
>
512
){
goto
fail
;
}
if
((
count
+
offset
)
>
256
){
goto
fail
;
}
if
(
!
info
->
inBlock_
||
block
!=
info
->
block_
||
offset
<
info
->
offset_
){
if
(
!
info
->
inBlock_
||
block
!=
info
->
block_
||
offset
<
info
->
offset_
){
info
->
block_
=
block
;
info
->
block_
=
block
;
// use address if not SDHC card
// use address if not SDHC card
...
@@ -315,7 +315,7 @@ uint16_t i;
...
@@ -315,7 +315,7 @@ uint16_t i;
for
(
i
=
0
;
i
<
count
;
i
++
)
dst
[
i
]
=
spi_exch
(
0xff
);
for
(
i
=
0
;
i
<
count
;
i
++
)
dst
[
i
]
=
spi_exch
(
0xff
);
info
->
offset_
+=
count
;
info
->
offset_
+=
count
;
if
(
!
info
->
partialBlockRead_
||
info
->
offset_
>=
512
){
if
(
!
info
->
partialBlockRead_
||
info
->
offset_
>=
256
){
// read rest of data, checksum and set chip select high
// read rest of data, checksum and set chip select high
readEnd
(
info
);
readEnd
(
info
);
}
}
...
@@ -336,8 +336,8 @@ return false;
...
@@ -336,8 +336,8 @@ return false;
* \return The value one, true, is returned for success and
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
* the value zero, false, is returned for failure.
*/
*/
uint8_t
readBlock
(
SD_info
*
info
,
uint32_t
block
,
uint8_t
*
dst
)
{
uint8_t
readBlock
SD
(
SD_info
*
info
,
uint32_t
block
,
uint8_t
*
dst
)
{
return
readData
(
info
,
block
,
0
,
512
,
dst
);
return
readData
(
info
,
block
,
0
,
256
,
dst
);
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
...
@@ -345,7 +345,7 @@ return readData(info, block, 0, 512, dst);
...
@@ -345,7 +345,7 @@ return readData(info, block, 0, 512, dst);
static
uint8_t
writeData_
(
SD_info
*
info
,
uint8_t
token
,
const
uint8_t
*
src
)
{
static
uint8_t
writeData_
(
SD_info
*
info
,
uint8_t
token
,
const
uint8_t
*
src
)
{
spi_exch
(
token
);
spi_exch
(
token
);
uint16_t
i
;
uint16_t
i
;
for
(
i
=
0
;
i
<
512
;
i
++
)
spi_exch
(
src
[
i
]);
for
(
i
=
0
;
i
<
256
;
i
++
)
spi_exch
(
src
[
i
]);
spi_exch
(
0xff
);
// dummy crc
spi_exch
(
0xff
);
// dummy crc
spi_exch
(
0xff
);
// dummy crc
spi_exch
(
0xff
);
// dummy crc
info
->
status_
=
spi_exch
(
0xff
);
info
->
status_
=
spi_exch
(
0xff
);
...
@@ -378,7 +378,7 @@ return writeData_(info, WRITE_MULTIPLE_TOKEN, src);
...
@@ -378,7 +378,7 @@ return writeData_(info, WRITE_MULTIPLE_TOKEN, src);
* \return The value one, true, is returned for success and
* \return The value one, true, is returned for success and
* the value zero, false, is returned for failure.
* the value zero, false, is returned for failure.
*/
*/
uint8_t
writeBlock
(
SD_info
*
info
,
uint32_t
blockNumber
,
const
uint8_t
*
src
)
{
uint8_t
writeBlock
SD
(
SD_info
*
info
,
uint32_t
blockNumber
,
const
uint8_t
*
src
)
{
// use address if not SDHC card
// use address if not SDHC card
if
(
info
->
type_
!=
SD_CARD_TYPE_SDHC
)
blockNumber
<<=
9
;
if
(
info
->
type_
!=
SD_CARD_TYPE_SDHC
)
blockNumber
<<=
9
;
if
(
cardCommand
(
info
,
CMD24
,
blockNumber
)){
if
(
cardCommand
(
info
,
CMD24
,
blockNumber
)){
...
...
This diff is collapsed.
Click to expand it.
SD/Sd2Card.h
+
2
−
2
View file @
7d3787d4
...
@@ -68,8 +68,8 @@ uint8_t erase(SD_info *info, uint32_t firstBlock, uint32_t lastBlock);
...
@@ -68,8 +68,8 @@ uint8_t erase(SD_info *info, uint32_t firstBlock, uint32_t lastBlock);
uint8_t
sd_init
(
SD_info
*
info
);
uint8_t
sd_init
(
SD_info
*
info
);
void
partialBlockRead
(
SD_info
*
info
,
uint8_t
value
);
void
partialBlockRead
(
SD_info
*
info
,
uint8_t
value
);
uint8_t
readData
(
SD_info
*
info
,
uint32_t
block
,
uint16_t
offset
,
uint16_t
count
,
uint8_t
*
dst
);
uint8_t
readData
(
SD_info
*
info
,
uint32_t
block
,
uint16_t
offset
,
uint16_t
count
,
uint8_t
*
dst
);
uint8_t
readBlock
(
SD_info
*
info
,
uint32_t
block
,
uint8_t
*
dst
);
uint8_t
readBlock
SD
(
SD_info
*
info
,
uint32_t
block
,
uint8_t
*
dst
);
uint8_t
writeData
(
SD_info
*
info
,
const
uint8_t
*
src
);
uint8_t
writeData
(
SD_info
*
info
,
const
uint8_t
*
src
);
uint8_t
writeBlock
(
SD_info
*
info
,
uint32_t
blockNumber
,
const
uint8_t
*
src
);
uint8_t
writeBlock
SD
(
SD_info
*
info
,
uint32_t
blockNumber
,
const
uint8_t
*
src
);
uint8_t
writeStart
(
SD_info
*
info
,
uint32_t
blockNumber
,
uint32_t
eraseCount
);
uint8_t
writeStart
(
SD_info
*
info
,
uint32_t
blockNumber
,
uint32_t
eraseCount
);
uint8_t
writeStop
(
SD_info
*
info
);
uint8_t
writeStop
(
SD_info
*
info
);
This diff is collapsed.
Click to expand it.
SD/picofs.c
+
165
−
50
View file @
7d3787d4
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment