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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 l3 T4 j3 v) W8 H# `( {$ ]3 E#include <linux/init.h>( q+ z$ Z. M  @4 E+ l
#include <linux/module.h>  R# D$ _# Q$ }* y1 \3 Q  W! F
#include <linux/kernel.h>
. `2 i: ?5 M, {$ E  e' ~#include <linux/types.h>4 f$ y. x1 u- Q* \6 b6 ~& o
#include <linux/gpio.h>
- ]" J* j0 O* a' n% l#include <linux/leds.h>
! t9 m0 Z9 U4 b" e" Q#include <linux/platform_device.h>
8 A6 u& V4 |2 n9 d4 E3 u6 W0 M- b$ j) n$ ]% r' J8 ?/ j: {
#include <asm/mach-types.h>0 N$ s5 Z; Y1 {% R" `6 o
#include <asm/mach/arch.h>/ |. _9 p8 u, E* @
#include <mach/da8xx.h>& {6 t/ @4 A" _4 x
#include <mach/mux.h>
  F( ]( R2 Q* J. T- C( k) K: M0 y3 I  D$ e, a( e
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* m5 `3 I; C- ?( m4 u) x  A
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): L1 j' K+ [+ h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 D6 F* t: q" E/ Q( c4 I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) h! D1 _+ M! |; n% \9 H7 B: e" C5 j! @1 k6 U5 I
/* assign the tl som board LED-GPIOs*/, u5 T4 z+ R. l' b* X2 X
static const short da850_evm_tl_user_led_pins[] = {
/ L! O8 `. H2 j, Y: ]        /* These pins are definition at <mach/mux.h> file */
* n/ ^8 e% w1 m( |1 V# y6 _& [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 W- {: ~( M3 m$ g
        -1
  g# {7 |! H, A" W8 f- }) a0 }};
$ S4 _+ p, a" L+ C9 ~0 j8 m' \' r9 D/ G; b5 `7 Q8 {
static struct gpio_led da850_evm_tl_leds[] = {
9 m# j& n9 ]$ }        {  M; x. f8 R% ?5 y8 [1 B
                .active_low = 0,
2 R) v2 t/ D1 f; w2 w/ M7 [                .gpio = DA850_USER_LED0,. `' v7 [6 T) f9 I* Y
                .name = "user_led0",0 A- @" q- c, R  D, e$ M
                .default_trigger = "default-on",
, d" ]* i. k* F0 h: J, o4 h9 V        },: E8 D3 L& t9 G! \: G/ b# a# k
        {9 ?# L; H/ v5 o
                .active_low = 0,
2 b- s- a9 f$ E" W# U                .gpio = DA850_USER_LED1,
# M- O7 o) h, g* t3 F/ p! B9 _                .name = "user_led1",
) @( ]4 d& o9 W  ]: ^! ?; g                .default_trigger = "default-on",& J7 i0 n( ^% |' ]( X( i
        },; j1 P' O- P* Z( s% s- B
        {# @& R% @5 X& o" G4 n
                .active_low = 0,2 _- g' S2 P" F" N6 }) E" r
                .gpio = DA850_USER_LED2,
& m) l( K* B  M$ V; u% C' p& O- S                .name = "user_led2",
4 l* R3 e' w) U! ]  g' T                .default_trigger = "default-on",; R. X( u2 L: Q7 N3 n, k# S& n8 I
        },9 E8 y! `; V6 L4 D/ t, z
        {
. i  O9 V+ U! W9 X. I                .active_low = 0,
* S' K4 z; G# @( c6 V& [                .gpio = DA850_USER_LED3,& E+ Q6 @% M  |% s; Z  a
                .name = "user_led3",6 k; f  m; Q4 J
                .default_trigger = "default-on",2 L2 B: b9 Y" X. H$ b- }3 {) h
        },
* P, h( ]% n( F' m7 {};) C6 T" e  o, Y* C4 e
. j( n) {9 H& K: S' e) q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" G4 T) q6 g3 l2 B3 Y7 K! n
        .leds = da850_evm_tl_leds,
2 L- d6 n  y7 R$ Y( K3 f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 k  K1 D9 u  n0 \% Y. h! m7 ]/ F
};& U7 f- r, s* i& V; Q# [
, f. Q" [; |3 z# H, @6 B9 }- O; m
static void led_dev_release(struct device *dev)3 e$ J. p- K5 S4 n! v: q, V0 t
{  M0 w) K1 H; D' W/ N, _
};, b$ v9 g. p& v, A

+ U. k: k9 `& }: X$ Zstatic struct platform_device da850_evm_tl_leds_device = {
, ]; w  G! ~) H9 }7 P8 I        .name                = "leds-gpio",
) w$ ^3 z" I- C4 G7 a3 n! L; A. ]9 p        .id                = 1,
/ ~& Z1 c# x6 i% R7 V        .dev = {
: c3 y- |1 j0 M3 j. k* Z                .platform_data = &da850_evm_tl_leds_pdata,; b0 q9 U0 q0 M. [5 Z! [
                .release = led_dev_release,* m" n. A+ v! M5 Z
        }
: q0 _0 r" d$ @9 [0 |. U2 r4 A) S};, w3 T" E) g. o8 o4 d! y% }" C4 m
: I' R$ C4 K2 M  d, Q6 U
static int __init led_platform_init(void)
" R3 v' h7 C4 D{; S+ X# Q* y. ]! E
        int ret;
; |1 M! E6 u9 e3 V#if 0) ?% F1 \( {% Y3 F2 O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) q" h" j  M9 n( q; Q- o* _8 Q        if (ret)7 n# J, z# a5 R: \1 X% \3 f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 C/ _' ?8 h* j5 _                                "%d\n", ret);7 |7 ~' P! H  i* v2 g2 E
#endif
. |9 H* H' B) {/ v9 U: J/ I        ret = platform_device_register(&da850_evm_tl_leds_device);. S* ^/ X( T/ L& }' v9 c* K
        if (ret)
5 h  O6 ]# R( a                pr_warning("Could not register som GPIO expander LEDS");4 c, ^  X4 I5 t
        else; j$ @$ P( D/ J& o, S( G) f
                printk(KERN_INFO "LED register sucessful!\n");
; d, c% t2 H$ `7 m1 J
5 J: W/ E& ^: }* ~- r0 B- D        return ret;
( O! A/ u. F  v& _0 [- i}
6 m7 ^7 p& B1 ~. s5 Z' Y# p, Q, l! u  h" G+ p7 y6 Z
static void __exit led_platform_exit(void)
( L1 \# N% S( g( v7 [% }{
. [1 v# [1 s# \5 \' k! N! s        platform_device_unregister(&da850_evm_tl_leds_device);
9 v1 @4 z9 ~0 _/ g4 Z0 H9 T! r1 i7 b& Y' O$ x# k$ d, l
        printk(KERN_INFO "LED unregister!\n");
9 g% ]( A* F" B. t! a" i}
. s4 H( T$ i5 o7 N- U& {3 }% z  Y1 Q4 C
module_init(led_platform_init);% _5 @$ f; B; ]: h* |6 ?9 V& K3 n
module_exit(led_platform_exit);
; w1 f; |% `# ~5 t  J: J+ A" z2 c. f! N) M' @. \2 E# r
MODULE_DESCRIPTION("Led platform driver");1 ], p# x# t7 [: c$ p( v
MODULE_AUTHOR("Tronlong");. T6 e, ~+ L1 m" ~8 z: g
MODULE_LICENSE("GPL");
* E% ^( r1 X( g" i/ O/ {0 b5 s) K  B. A1 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 09:14 , Processed in 0.039463 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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