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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# n" E* f% l7 ~+ e6 `, T
#include <linux/init.h>
; _& g' l9 u) N# l( \#include <linux/module.h>9 j: k: k8 G# |# h5 m
#include <linux/kernel.h>: r# T* I9 R/ K2 b6 r1 r! Y# \) t
#include <linux/types.h>
& {' a: t, ?# S6 q( v( v& W#include <linux/gpio.h>' L# X: x: R1 e( B
#include <linux/leds.h>
, g6 S' I8 Q" s+ u- a; E5 K8 u#include <linux/platform_device.h>  v  B0 O5 ^/ W# S1 t

0 P' C* q5 L. s# |2 e/ G#include <asm/mach-types.h>
% r) M8 @3 L- n$ e* s#include <asm/mach/arch.h>5 g3 a1 P6 [& y
#include <mach/da8xx.h>
" B+ v+ [8 S( J' w" V$ I1 _#include <mach/mux.h>- W9 Y5 B' c' o* G5 k

  M5 q1 F% ]% L, T- z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  d/ b; t4 g0 d3 X9 F  j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 C/ ]% V3 }+ E+ b6 C* `9 a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" c6 C4 G2 E, x. o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& C0 l9 R( ~  {# ~
3 v; I9 z7 c' Q* z. v$ J7 j0 N4 M( J/* assign the tl som board LED-GPIOs*/8 Z+ A9 s* O0 ?7 @: ?1 c) q
static const short da850_evm_tl_user_led_pins[] = {* S  P1 }' H0 _  \& u
        /* These pins are definition at <mach/mux.h> file */" b6 k- g- [$ x, L" O1 }4 Z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- [: Y! ~2 E7 L4 X9 I, A
        -15 [) x- t- V+ u4 h% s
};
# z" j4 j7 E& n5 }/ T* V5 Q3 h+ E" h7 A- C) g6 ], {
static struct gpio_led da850_evm_tl_leds[] = {: H3 R; m6 B& P# N
        {
. h; P* t2 e9 L                .active_low = 0," N; a/ u# j4 s7 J) R! l# }+ Z
                .gpio = DA850_USER_LED0,- i$ m/ B9 Q/ Y( K& H8 u. `: [
                .name = "user_led0",
6 W7 z6 M5 b4 f; V) u* {+ A                .default_trigger = "default-on",# {1 K, |( ?  Y9 n/ R
        },* e1 E) A8 n- V5 f2 V5 w
        {
8 ~/ N9 ~' V% {+ g                .active_low = 0,6 v7 ^8 A' R3 `
                .gpio = DA850_USER_LED1,7 V% l2 j. o( X
                .name = "user_led1",6 Z9 F" Q& p* ?) {
                .default_trigger = "default-on",6 h0 y: E' p3 U4 Q- }, ^
        },- b% f; n2 K+ R; M, o
        {; S+ z6 Y" N( F% y6 [3 Y: f4 H% i
                .active_low = 0,6 k. L# T* G% g' N
                .gpio = DA850_USER_LED2,
3 g9 F5 K9 D1 c2 ?3 q& X                .name = "user_led2",
. M2 N- |) G0 E, V, o  G                .default_trigger = "default-on",8 [* N5 U. |4 u
        },
% f% l2 \) E( ^        {% l( I5 [. v5 z* f4 q
                .active_low = 0,
4 x+ {: G/ c9 `$ {                .gpio = DA850_USER_LED3,* i- H( x( o! D6 U
                .name = "user_led3",
0 T8 b# D3 U* j2 Y+ N( X                .default_trigger = "default-on",
0 a: a7 I  v: H        },# \# L5 d6 W" o) P+ Q' l9 H% u
};
  e' i! }2 m: T! }/ V- G# g6 M9 x8 p" B7 ^3 Z2 i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. X$ p8 `% h1 E" l$ p/ Z        .leds = da850_evm_tl_leds," ~' t* m- u" M$ b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 V  f2 C) S2 e& c: [};
4 U  H6 W4 ?3 y" r6 M. ?8 L7 {$ g
# [( x) {+ ~. W% Wstatic void led_dev_release(struct device *dev)
- C+ u: p% X  f- N+ B7 ~7 A{
) z. n; v7 \& u* I8 T2 t};3 v4 h/ [: W* _7 e7 E8 A& c
" S& ^. Y. f! H5 C, G( G9 X6 Z
static struct platform_device da850_evm_tl_leds_device = {7 G) {) ^" [: @$ e
        .name                = "leds-gpio",& t- [0 P5 W+ v
        .id                = 1,/ K% U% Z! G$ c+ A! X
        .dev = {5 ^/ ~; d) i/ O4 ~
                .platform_data = &da850_evm_tl_leds_pdata,! q. j9 r5 d' g+ S7 `
                .release = led_dev_release,5 t- ^2 C2 y' S3 i2 ?8 s
        }
# k1 W( T6 K9 m. |& J# V3 {. k# o};
- ^  k- F. O9 P6 f6 M5 l6 ]6 t! E' V. H$ G: z
static int __init led_platform_init(void)4 G! H% h- v  h0 }3 J; \% G
{
: T9 G. p$ l( a' [  P        int ret;
5 E# d2 ^; S; Z3 |$ U#if 0
% V4 L- d) Q" }- O' Z# t/ n% f        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; t2 Z. C9 Z2 ]9 F% b1 i        if (ret)
' f9 i" v3 d3 t5 D2 T" T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# s- [" L% L3 B; a
                                "%d\n", ret);
( f0 g3 z6 g8 u#endif
% W6 z1 {) M9 a3 v8 {* z        ret = platform_device_register(&da850_evm_tl_leds_device);
1 i( H' j+ M3 W( S7 t9 V& W        if (ret)/ f- k2 p, D* i( g4 T6 w6 |
                pr_warning("Could not register som GPIO expander LEDS");( R4 N6 ~2 W  I/ m' S
        else
  Q0 }* C5 O& B2 N                printk(KERN_INFO "LED register sucessful!\n");
; I' N( R& Q+ P# h3 H
8 K+ T; n0 t: O) \        return ret;
9 N: l0 {9 k: u8 m}
- t: {+ ?3 Y- {. d1 a8 A
* r9 h" `8 ~3 J5 i0 r/ ]" |( ^static void __exit led_platform_exit(void)5 `0 W4 N( c% f3 j9 t& s
{
" V1 K* L; z6 m6 p/ Y5 J+ Q        platform_device_unregister(&da850_evm_tl_leds_device);
2 f5 u5 [# L% O2 @: L. h3 W8 a- W5 @9 y! `2 C$ ^4 e
        printk(KERN_INFO "LED unregister!\n");- l' v- W! W/ O) P1 ^
}- g, i7 Y, b; [& z: G: h; P

8 q2 R1 s$ p$ f6 R0 jmodule_init(led_platform_init);+ u, x: t# t( M: J
module_exit(led_platform_exit);* v2 N# Z4 [; o( K5 r" V+ C0 g# ?4 H

% I) N3 s( ?1 H. v' PMODULE_DESCRIPTION("Led platform driver");
7 z; X8 Q# f& l; \6 K0 l( Q3 J1 ZMODULE_AUTHOR("Tronlong");/ l0 \( w1 M% E( b$ l; y0 b2 }
MODULE_LICENSE("GPL");# P3 b0 ]# z4 T. j+ M- Y9 h% g- N

5 K( [8 w( \+ T/ {, k/ Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 22:41 , Processed in 0.041379 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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