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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* H+ B* B, G4 p6 ]6 p5 d) O. K
#include <linux/init.h>
/ u: S, w5 j! ^; }$ K#include <linux/module.h>
2 k7 k% J& A+ v1 x#include <linux/kernel.h>
6 l6 h/ h, F! x- |8 U: y* a  o3 Y#include <linux/types.h>
. k- R: H* c; O8 Q5 P" W' A% d#include <linux/gpio.h>
, V5 u+ v! a5 c4 K6 [* w- D#include <linux/leds.h>
1 F! }. ]3 w$ p# ~' o3 N#include <linux/platform_device.h>
( U- ^6 h$ h9 @: o% @
& f, M: |2 A( ~- z! \#include <asm/mach-types.h>
; A7 @# B; H( r# M% N" \#include <asm/mach/arch.h>
7 O! Y# c& R) B  Z#include <mach/da8xx.h>
7 W& H3 v# R) {#include <mach/mux.h>
2 o2 |7 l0 r( w+ n" O$ }
& ?  r3 u$ U$ k+ r#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& I" p- L0 f1 x
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 A0 n: z# n& E; X9 G7 r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 k& B0 f4 e; V; [3 r) M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 v( s0 C4 I7 v, L

4 b7 f, ^/ O$ {2 o' j1 I, n/* assign the tl som board LED-GPIOs*/5 v, P3 g' W' F5 F. c5 }: H
static const short da850_evm_tl_user_led_pins[] = {0 h- x( [. ^1 [2 M
        /* These pins are definition at <mach/mux.h> file */
1 i4 Z+ t1 e7 T. R4 N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 @0 m1 `0 R7 y- C. c        -1, N" a5 \# N' u! x; T# J! g
};
# l  @6 ], L' o# l! ]/ J' O
- g: \# U1 h0 {# |; G6 F  h& Astatic struct gpio_led da850_evm_tl_leds[] = {! n/ Y( ~8 n& M* h7 N- r# r
        {6 s' v1 h2 \3 M% C- c9 r
                .active_low = 0,( P  Y4 v4 X  W9 t, j: e
                .gpio = DA850_USER_LED0,( c1 s. V- K" p# M( O" U
                .name = "user_led0",
* j3 K$ ?$ {- z5 N/ l                .default_trigger = "default-on",
6 w6 D' d9 n  s; I; ^2 ^, y! ^        },
! {2 U2 B: B! A        {
# j5 y% r7 e2 E+ d8 w. M                .active_low = 0,
. e3 |# `2 |8 T# A                .gpio = DA850_USER_LED1,
# e8 [6 T* O. E  h$ ^" ?                .name = "user_led1",% _- }0 v/ Y4 y) d- J! f* ~
                .default_trigger = "default-on",
! K+ n  f9 S8 [% Q7 ?0 D' k        },
2 u, O/ `4 @2 [* R, H( V: C        {( [& K/ T/ V5 t# O9 G. K; g4 x
                .active_low = 0,: z+ y0 u; t) Y
                .gpio = DA850_USER_LED2,  g3 y. `0 k) U! O# v* B/ g7 E5 H
                .name = "user_led2",
8 [; K# P- M9 q" D. r8 u# l                .default_trigger = "default-on",$ w* |; k5 B6 E( Z5 ~% o
        },
) N' K7 f0 W. R1 f, D        {! K0 v* j! T# P. ~
                .active_low = 0,
. N  C$ c2 r# K0 o8 M                .gpio = DA850_USER_LED3,, }* \* J" L; ]& {0 ~* J
                .name = "user_led3",! M* T/ J& _2 r3 c; x/ t, D1 u. \
                .default_trigger = "default-on",
. c& A& J+ Q# _6 C        },
+ P: V3 Z) S' B" V};7 h, X) {9 x2 V+ D* }: Q: V4 b
& x& y5 d, y# Y6 \9 `* j% ]; c1 y) M
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" Y. L8 N5 T; j  t( w) _: i7 E. s, Z; }
        .leds = da850_evm_tl_leds,6 e. p3 e2 ?8 D) S4 w' ~! w5 T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% s" f' G4 B& f$ G" a6 U};
! y2 B; i  |) g* }3 T, X9 _) I. i
& x1 a. U) c& m  S8 b" cstatic void led_dev_release(struct device *dev)
/ O1 |" W' O: O  B. N* n{
. a$ N; e0 B. u" X};
1 D; N2 {% N7 t. D/ I0 G0 V  C
% k9 ~8 ^9 A, Estatic struct platform_device da850_evm_tl_leds_device = {
& f' @) A& }: L9 Y* N        .name                = "leds-gpio",: s$ ^: S5 L" v0 \+ T6 L
        .id                = 1,
( M8 r8 q0 V5 N' Z3 y        .dev = {8 B3 D/ k4 I9 s. x# _
                .platform_data = &da850_evm_tl_leds_pdata,
7 X# K" B. W$ Q" Q/ ?                .release = led_dev_release,! F4 H) M3 p8 r5 v" {
        }, ?' O+ Z0 A  z' i
};
; D8 G  z4 ~# N+ }, b1 X* P% u* s0 l5 ~3 r) w  Y/ Z
static int __init led_platform_init(void)
! B+ a9 H- k: h, ~4 o{) |4 o4 R9 Y: x$ A0 k
        int ret;
; f/ m6 S2 f$ M#if 0( W/ v$ }$ o: \6 ?9 `# b$ |9 j0 Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  ?% Q* ], \1 x" Y6 g+ n4 R        if (ret)
# D  t) c. _" n5 C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 D# T. A4 y$ O
                                "%d\n", ret);. H4 Y+ P/ w# {
#endif
1 n$ v/ A. z5 J  ?; @6 w3 _        ret = platform_device_register(&da850_evm_tl_leds_device);
- f: ^5 C: \7 C( K        if (ret)  N  C5 l9 {& h0 V% m( Y3 N  K; u
                pr_warning("Could not register som GPIO expander LEDS");
7 x* S2 l" _. `        else0 }* \" R# E3 O# U9 F. U& v
                printk(KERN_INFO "LED register sucessful!\n");7 r  i+ o) A- q

+ d$ h# f3 ?, b1 i7 }  F) ~        return ret;
# n4 D5 U2 `$ c}6 d, D1 k5 {+ X. K

( Y; T) ~) D$ Vstatic void __exit led_platform_exit(void)& m/ l5 V- J3 i1 e
{
4 a8 Q1 C/ H1 g2 W0 m8 s& ?. d+ z        platform_device_unregister(&da850_evm_tl_leds_device);
7 x* Z7 p9 e1 L! v* x0 v7 m$ r- Y: P# }0 e
        printk(KERN_INFO "LED unregister!\n");
: d  F: D* Q6 n8 w}, ]4 }/ G; J5 |7 K  b# y5 K
; N% r; f) Y. ~( c4 B3 U
module_init(led_platform_init);. Z- k7 t8 X) F" b& |  l
module_exit(led_platform_exit);
5 x8 V; f1 {- E5 E% p* u1 I6 L) W
MODULE_DESCRIPTION("Led platform driver");* I) K6 M' R) Q5 J! m# X
MODULE_AUTHOR("Tronlong");
- o3 x: M/ a) A( d: m3 M/ cMODULE_LICENSE("GPL");
- b! Q* L1 O5 N+ B, S* h; d/ m( \! A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-12 21:23 , Processed in 0.044360 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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