程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( h/ U: T- U, d/ j#include <linux/init.h>
( P1 G7 z. {6 R, |( T#include <linux/module.h>) `9 l: v4 q: Q7 X+ _3 a. o% q
#include <linux/kernel.h>
) Y$ S0 V) A$ ?8 _1 s8 t$ b#include <linux/types.h>$ T, p# t+ o( Q- T6 K2 T1 p
#include <linux/gpio.h>. Q0 h/ h  d" f$ W
#include <linux/leds.h>7 }# ~* T1 r' y7 p4 v# n. D' u  Q
#include <linux/platform_device.h>
5 C" X" P* Z' N+ V6 x# w; x  m' ]: A) Q" D
#include <asm/mach-types.h>8 ^6 z* x4 ^  Q5 p) ~$ t
#include <asm/mach/arch.h>1 D0 M2 ?2 U" x" k
#include <mach/da8xx.h>% h! j% A& ~; J* u
#include <mach/mux.h>
' R7 C# l: v, ~6 d* ?- g
9 a6 O5 s" N' v$ d$ Z3 T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) z% Z* V2 }# `  v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): S9 k! C4 X5 L" ]3 G
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 r. P( Y8 d' L& d1 H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% [) j% @! y/ l* b
3 x& f4 a, l! W9 z* b/* assign the tl som board LED-GPIOs*/( Q. T8 S/ N5 R$ V' }+ D1 J
static const short da850_evm_tl_user_led_pins[] = {
6 S% _& v! j+ L6 A        /* These pins are definition at <mach/mux.h> file */
- k8 u" a9 u; a% [. A. k0 U/ o3 W) m        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ b3 C( M) @7 A
        -1; F: C* a8 W9 \. a( ]
};
/ [- D& l, _- }6 I$ K' T+ U% H3 U" {
4 Y) t1 c' ?% o- g' jstatic struct gpio_led da850_evm_tl_leds[] = {
. n1 g. @6 D9 B3 a        {
- Q- V# V  j' P3 P, Z: l+ O1 H# a                .active_low = 0,. j  W& c' a; G5 m2 e( ~. _
                .gpio = DA850_USER_LED0,
) ^1 H0 U1 J# Q& ^                .name = "user_led0",+ R' E  C1 `( L/ D* T0 M2 H
                .default_trigger = "default-on",9 y) I8 H+ h0 Q7 H" V) }: g- X# Z
        },1 f8 u2 R4 G; L
        {  l4 R! r4 e) H! P6 l
                .active_low = 0,8 p) i% H$ l2 j; r, f& [
                .gpio = DA850_USER_LED1,  M) F4 E$ ^% F# p" H) O8 s
                .name = "user_led1",
/ U. U! Q* i9 M7 b0 V1 n. i3 _0 v% t                .default_trigger = "default-on",  K$ s0 H" P) H( J
        },: t! i- J4 n0 `7 ?* Z
        {# d0 M5 w8 |# {: n( Q8 A) W
                .active_low = 0,
1 J2 k5 k5 V7 W. r                .gpio = DA850_USER_LED2,5 R! v! x9 W+ o7 H3 C# I
                .name = "user_led2",
# \9 t9 J6 H$ `6 Z8 e4 M7 r/ E; @                .default_trigger = "default-on",$ I) E" u: A8 g
        },
8 f1 V% U; h! M' [        {
% I! \& d5 c* g8 _7 u$ U" c                .active_low = 0,: \- A  L! c8 C8 D' O0 L3 x! C3 J
                .gpio = DA850_USER_LED3,
7 w) j! Y1 |* v( B* ^: H# v& f                .name = "user_led3",: T! Q2 d+ w% m: y4 ^9 r+ h& N# O
                .default_trigger = "default-on",
& t, k8 B2 S" m0 {        },, |0 c  y9 H* I; y
};# k" q  J# O' G7 N$ v* G+ H' D
8 Y' A) R$ ~! c! o; }# m) w0 u0 L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ `0 N' v3 a9 S1 z  n& b& v
        .leds = da850_evm_tl_leds,
1 A5 G1 Y6 r" ~( w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) g/ A. h  p5 ~+ @" |};6 a  K2 R% r: o0 t# s6 D' A
" ^4 t) d, N: ?) C
static void led_dev_release(struct device *dev)  Y/ ]1 D! ~" a! R$ h% g
{
, w# i; P6 i* q6 a) g8 r, d, A7 {5 m0 V};+ g- z, E5 I6 I( b% `1 ~. v
- ?7 j$ K: b! l9 L0 y! X1 N
static struct platform_device da850_evm_tl_leds_device = {  A6 P# D: A% c% l1 O' |
        .name                = "leds-gpio",/ q* A6 d  ?' @
        .id                = 1,. }1 u0 @* V1 U
        .dev = {: j9 O- a8 _$ _* Y0 Y! Y0 H0 }
                .platform_data = &da850_evm_tl_leds_pdata,
7 Q) _$ u. ^* j, o$ W                .release = led_dev_release,  u) i  K# {- O
        }' p- `' S$ S# `: V, V
};6 e& a+ d' s. H0 q" d- V' E- ]& u; q
: R$ N# E& @9 v) v7 j3 A
static int __init led_platform_init(void)' z5 d4 W" Q9 T% v( j1 c. y; [8 z
{, K, U# U3 O: k; A. c) }1 j' ^& ~2 ^3 P
        int ret;
; k: Q7 f5 A2 O#if 0
7 n, }1 e  P- Q3 r* v- \. a1 ]$ o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ s, c1 e: V/ t- m        if (ret)" H% K$ U; B3 x0 n( x: m# R- D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 F& }3 e0 N) ~. T) l4 ^
                                "%d\n", ret);
  b- S$ ~$ g) {0 Y' a#endif
4 G7 \1 n3 S$ i5 o; b( j4 N2 A        ret = platform_device_register(&da850_evm_tl_leds_device);
0 h0 I5 G/ W! R) P. P  c  [        if (ret)
3 A% U# |% W2 T; X1 w6 {2 t4 [# v                pr_warning("Could not register som GPIO expander LEDS");& `0 J: k) H3 x$ t) ]% @: t: X
        else, }1 U* R! e' F
                printk(KERN_INFO "LED register sucessful!\n");4 ^' \* u2 x3 g; e

% s6 U! |! V% F& i% p        return ret;! e3 w! f# u5 v7 A
}, Z: {! w: G( t% [+ L
% H8 M" P4 b" }) W5 U$ c
static void __exit led_platform_exit(void)
0 ^8 W+ c5 ^( y+ A$ i; O3 P* z{
0 d! ~6 N9 V! y/ e- F) B0 X, T% @        platform_device_unregister(&da850_evm_tl_leds_device);
$ [) u" g8 h' u/ J; K7 g- N5 S$ S: p
, L( {) b- F: g& ?5 s4 ^) ^  E        printk(KERN_INFO "LED unregister!\n");% Z# I7 u7 U4 {9 H7 |; {
}& R3 S+ X; N" u1 J$ t

' P) d% C& X: i% @. w7 kmodule_init(led_platform_init);
) T% e7 v' L! B5 X1 W# x- B( hmodule_exit(led_platform_exit);$ B9 X  S" K7 [: ]3 l
  g6 u7 m  O/ F0 j8 U0 f0 P* s
MODULE_DESCRIPTION("Led platform driver");1 O. p' [7 ]" y/ z" ~3 d  B! m4 a
MODULE_AUTHOR("Tronlong");
$ A1 ?6 w& h' W3 eMODULE_LICENSE("GPL");4 B7 g5 Z+ T3 m6 V. A5 N5 |* P# G
3 \7 Z9 e6 m5 z: Q, o; a$ }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 13:15 , Processed in 0.037069 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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