程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10087|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* `0 e. q3 M. U" V, m#include <linux/init.h>1 e+ z3 _; b2 [1 M5 c2 B: |
#include <linux/module.h>* X; y  M, L3 ]2 y# f" P# m. W
#include <linux/kernel.h>
, q$ U# ^5 Z; |& J4 z#include <linux/types.h>
6 y. ?8 s: y6 u/ f#include <linux/gpio.h>; T& n+ e6 U/ M: O
#include <linux/leds.h>8 ?  o: }# n- O) p( Z
#include <linux/platform_device.h>" G- ?% i  u# d# D0 M" T4 ]4 P
9 N) B/ r9 w" u$ b7 `
#include <asm/mach-types.h>
* |: M$ L5 n4 }4 s" @! B#include <asm/mach/arch.h>1 T) a! L- ]) m
#include <mach/da8xx.h>
: [. n% G$ T& }* L* p2 y' ~  |, t! {; ^3 u#include <mach/mux.h>- b/ ?8 a  [% A) R. {* s
' A% }1 q/ t. S7 P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); U% w0 y- h/ R  ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 b. @1 ^+ ^- E! T1 q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% I; O, v) a- b8 U* y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! c6 ~8 ^0 L6 e- `) v, \
. P& O+ L( k, _; ^! c- ~7 B5 X5 H
/* assign the tl som board LED-GPIOs*/+ d, t- C, y% F: q9 n
static const short da850_evm_tl_user_led_pins[] = {
9 ~3 L* j# E6 N8 }! r        /* These pins are definition at <mach/mux.h> file */! m/ s+ h* |  H8 q. c( R' J( x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: ]8 i7 M9 v; i9 ^% m        -1
" T+ v0 I( C$ a3 X) Z! t};
: l. [2 j: P) Z6 Z6 T/ K  b; D: F# ~" c$ z. e/ Q$ i
static struct gpio_led da850_evm_tl_leds[] = {' l$ S: o: N9 k1 {# B5 F9 q
        {+ B/ Y; l. `4 G3 ^
                .active_low = 0,
* I* ^9 Y/ |# Z. a) j+ }8 V3 X                .gpio = DA850_USER_LED0,
8 b. S1 }+ l  f+ v; n8 X6 q- P9 n1 Y                .name = "user_led0",
6 U1 z" _# @$ ?% W% Y& ?                .default_trigger = "default-on",
* J4 p8 {3 \5 c3 m( B! t* D        },6 s- z! n% Y$ o2 O5 p
        {
! n' M4 H& ~! i, @% d' D                .active_low = 0,
. Z* r5 C1 v8 N" W4 C" J# u7 z6 F                .gpio = DA850_USER_LED1,
+ A: i/ r6 Y6 \- o1 a8 F/ [                .name = "user_led1",  w, [0 N  |6 a0 R+ m$ I
                .default_trigger = "default-on",3 n2 z# |  M% _4 _& n
        },4 X  y; E, z' F0 u, }! o
        {
0 b. Y# {4 B6 H3 i                .active_low = 0,: g6 O; B( o: C0 W* T, I6 |! T
                .gpio = DA850_USER_LED2,: U+ d, X4 s  _2 Y' j1 l; I
                .name = "user_led2",
  E% G1 k- ^4 Q( F0 B                .default_trigger = "default-on",. o- d6 a5 }7 S3 W6 ?
        },
5 a: x/ [; q7 e, c- H4 ^4 k. Q2 z) L3 [        {' H- y. C5 j; h- H! ^+ b! o8 S
                .active_low = 0,3 U) X; Z; w  ?% D. p" b8 H
                .gpio = DA850_USER_LED3,; d0 u9 P6 D! q- N4 b6 y
                .name = "user_led3",7 W# ^/ ^1 ?( b. ~! b) J  Q
                .default_trigger = "default-on",0 ~2 P  F5 z# T2 z9 D
        },' h# N5 P( O3 J6 J' c
};- {2 h* T" C. v3 G, B, g2 X  |
7 B( M8 P3 @2 o6 _# i% N  q0 v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
  v# ?' m4 Q1 G, y% X2 H        .leds = da850_evm_tl_leds,
5 B* t" G+ T6 j7 W$ o) _7 X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( g- V; x" Z/ a  H+ K2 m% v
};% R& h; K, w% {! d' x
; p. K0 }! r9 h
static void led_dev_release(struct device *dev)
( |5 |5 `% {& j6 @8 W% p7 U2 N{
7 q$ g  c- n3 U7 [3 z0 ~' F% w};) y  v7 G- k8 j% G, v7 \

" w3 c. x3 I% lstatic struct platform_device da850_evm_tl_leds_device = {. {! d# b6 j$ k% j3 @8 S
        .name                = "leds-gpio",
  k) q3 A# s% p, y        .id                = 1,( b( A6 C) Q: a, f1 Z4 J
        .dev = {
) j. g3 G& j4 v$ \9 T3 R3 N- R                .platform_data = &da850_evm_tl_leds_pdata,
1 c! A) B8 W  _3 u                .release = led_dev_release,
' M, s0 O2 l! e" u% P3 O: z7 |  x. T        }
7 u5 Q3 v3 m' J2 D: O5 B7 c6 w$ O};5 _1 j2 K% u: E2 k

1 {7 j) `  c, t# P1 z& @- J- ostatic int __init led_platform_init(void)
& s2 t  U+ X0 B/ }1 V{
1 q2 ]$ r: y$ |% [% e. E$ {        int ret;- a  U' C9 w9 g& T2 ~
#if 0
9 |6 F3 E4 O& |0 X& c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& L( a6 N- e' o6 Q) T        if (ret)
# r9 M+ A# L2 e! C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 @1 F) s& u( Z3 @+ B& g0 I7 }& Y; b  ^) Z
                                "%d\n", ret);$ x8 N" ?! p2 L: q# q0 Q
#endif
; J' H8 F% ]5 j0 M1 T% [! n# C. p" P        ret = platform_device_register(&da850_evm_tl_leds_device);
) n" L6 m, V9 R- s. e8 @5 W        if (ret)
9 X8 C. ~- M$ m0 s& q" U. Z                pr_warning("Could not register som GPIO expander LEDS");
8 \7 b% e9 D' \/ `% d# [* B( }9 I0 q7 v        else
4 u% D8 h1 m% t$ q* V5 ^  j; ?: N                printk(KERN_INFO "LED register sucessful!\n");
0 R1 \4 P: x, Y2 U
9 q/ y. ]- u6 P6 [8 V" K# _9 i        return ret;$ O' e. u$ a7 U& g/ X& L
}
: C' M+ ?' S) n( U2 |' e4 R& b$ |5 C' V5 x9 @3 g# a7 X; J" Q
static void __exit led_platform_exit(void)0 d6 w( J1 M( d0 w( ^9 u
{* P" N7 _, h7 ^; l1 U0 {4 x" j
        platform_device_unregister(&da850_evm_tl_leds_device);
, i- {  i( o0 n  O4 b% [+ Z: q) w: Y: l6 k5 a
        printk(KERN_INFO "LED unregister!\n");
# H/ k9 a2 y# A+ O" ^}& C, |5 O( ^% @+ j3 t1 {

) v8 c) T& @" Y: P& L% Xmodule_init(led_platform_init);
6 k: A0 m+ y6 Q; ~% |: ymodule_exit(led_platform_exit);! R* q* Y/ k: f) _
+ w$ _9 H9 b  |5 u6 ?( K
MODULE_DESCRIPTION("Led platform driver");7 {0 H0 c. s7 j, A: J
MODULE_AUTHOR("Tronlong");
& h% C; B" J! G; U& z4 Q( SMODULE_LICENSE("GPL");
* f$ I% \! C# m7 t) C* Y# a1 }5 Q2 Z7 B2 e+ h; g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-4 23:56 , Processed in 0.038411 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表