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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- i) ~+ t3 s* |4 x: f% U#include <linux/init.h>& Z+ C' S: a8 U1 `1 r9 k) |
#include <linux/module.h># V9 p; c! [3 i' T, p
#include <linux/kernel.h>& ^# D! {# z" i; z  C
#include <linux/types.h>+ R) K; G0 x! @) f3 i
#include <linux/gpio.h>
6 n( o6 v( ~: f# J#include <linux/leds.h>
: Z% s) C6 W9 k; k$ L1 n: r#include <linux/platform_device.h>
' k. \6 g7 R: F* W& S# i2 d! E6 x  x
#include <asm/mach-types.h>* x% M; P3 P$ t+ B! Q* N, ~0 l2 B, m
#include <asm/mach/arch.h>3 R# h( H. C- f9 w
#include <mach/da8xx.h>! z% A+ g2 A/ g
#include <mach/mux.h>- {! [, D1 `( b( V

4 B3 n6 ?  L- \! L# }1 R( i2 ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 X5 g, B1 x; T$ h
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# a6 Z6 ~) d: V0 X+ e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); S! L6 |8 T) f5 h. K4 {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 q$ q; z' h. |4 _8 v: ]$ l
; G0 Q# d4 a- G! r7 I: ^
/* assign the tl som board LED-GPIOs*/
2 d4 v" m( T& c' vstatic const short da850_evm_tl_user_led_pins[] = {
! X$ B( m* N% }* w1 a        /* These pins are definition at <mach/mux.h> file */
) W! b7 A6 s: L0 V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 F5 D2 P# S; P$ h# [
        -1
$ {" A/ R. \$ N9 E( ^, i. P};
  O+ ~' @3 U  y1 S' W6 X$ q) P/ w- ~" z, H
static struct gpio_led da850_evm_tl_leds[] = {
$ P* N3 G) L& Y* B0 `0 g        {
+ {4 E8 U2 `: ^4 U                .active_low = 0,
! I& z& E5 u* \) \9 s( K                .gpio = DA850_USER_LED0,
1 i8 W! e6 P. l, \6 a; U                .name = "user_led0",
( Z% Z1 q9 k; Q                .default_trigger = "default-on",
) }8 w! l$ a5 j        },
$ y# L7 F: |& ~' y5 a# _        {
' N1 l: V9 p) x1 s2 w! h1 \* j7 \                .active_low = 0,! S7 A( {" }2 k, R# |
                .gpio = DA850_USER_LED1,. p$ S. H% t7 J7 i& K' r. ~
                .name = "user_led1",( L+ U2 Z+ v: E) T. m7 \2 L
                .default_trigger = "default-on",7 Q) J( b6 ?+ x- R8 N
        }," I: s% E, Q- I5 e6 \
        {7 S. Q% _: Z, a& e
                .active_low = 0,
" F+ X3 @, e3 d/ X; m                .gpio = DA850_USER_LED2,8 C4 l# b, X  w' K0 y5 d
                .name = "user_led2",; u5 B3 y, N! D% X6 a
                .default_trigger = "default-on",
6 Z3 e# J8 s7 V; E7 G# a5 y- T3 y        },$ |, V' s6 u3 v! I7 o1 V
        {+ L) G1 b9 v  l/ T3 G
                .active_low = 0,* T0 P  |$ N  ~  H
                .gpio = DA850_USER_LED3,
) d, f6 Y1 i+ ?                .name = "user_led3",
2 U- {/ Z* H& m( r& O                .default_trigger = "default-on",$ c* `2 r; \/ k1 H
        },1 A* Q5 l( t, }# j. g( h
};5 }$ ^; S% y& Z2 n

' V6 u+ e; Y/ l9 W2 tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 R% U: B' q$ ?! Y        .leds = da850_evm_tl_leds,
4 h4 R9 ?( b/ O$ b* i0 t+ s2 f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
$ `  b! a# p: [4 T};* U  F: n2 s+ X3 N1 \
, T" L% Z0 s/ d  K! ^
static void led_dev_release(struct device *dev)2 R: `* O5 u0 C) @& j; W+ S/ ]3 h
{
6 T8 o& k- ]0 c, [1 ~0 M};
0 }# H' F- {; |+ `# t& o9 w
; u% g& r. G' Y) Ostatic struct platform_device da850_evm_tl_leds_device = {0 J& e" j- k8 y- s; u$ p- K" j9 P; \
        .name                = "leds-gpio",
) a: I+ \3 }% r, S1 R        .id                = 1,6 `3 s  q9 o+ w+ G. Y
        .dev = {
% t7 q, P7 y& }* {  ]/ X% H5 w# s. m2 B                .platform_data = &da850_evm_tl_leds_pdata,2 ~; N! w  c  t! B# }
                .release = led_dev_release,9 N0 u' i8 [* f) U/ J3 f
        }5 X! {4 A. m7 v) D7 D4 O; X8 T
};
, ]# F: ^1 |' y: T0 }" J8 M% m' ~+ S' k
static int __init led_platform_init(void)& ?$ I( W+ S: B/ J# K. m* O
{
: R! H' p9 p! x; {7 |        int ret;/ O2 m; H( t+ O
#if 0. ?2 t+ n7 T. z5 }0 Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 r5 ?% v5 u& s# M
        if (ret). X$ V/ v, J. v! S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# l. c. A& n' C- n" p, X' G0 ~                                "%d\n", ret);4 V0 J3 j* g* G( I
#endif
6 J: R* [- r* |- ^! N        ret = platform_device_register(&da850_evm_tl_leds_device);2 C& F# M& L8 F; [0 x! E
        if (ret)
) g5 f% E# n' m% S5 \, |                pr_warning("Could not register som GPIO expander LEDS");) F( P3 H5 u1 D7 `/ @
        else
: M4 q! S8 p& L+ z0 R                printk(KERN_INFO "LED register sucessful!\n");
) c. \( L+ Q7 G" S8 v* J$ I' T  _* y" a( Y: Q$ t! Z
        return ret;
0 G1 S; h, u! T# o( \+ b}, J6 ~5 o* h, Q. P" u: d1 A
- }( i9 A' z* f4 E8 W# u- K& @
static void __exit led_platform_exit(void)
( a& [! ~: a0 G" Q* b$ y1 y& e9 T{5 j: q& s  k  M- K# A$ V4 h
        platform_device_unregister(&da850_evm_tl_leds_device);, V( m5 f4 h% \0 p: `, B0 @
" P# t7 X+ j: R- Q" b' s
        printk(KERN_INFO "LED unregister!\n");, r. m, a, Y# ]( [. i& P
}- M, t$ g5 J) D7 p& a/ @

/ y7 t8 e' Q# nmodule_init(led_platform_init);. \$ ]7 B  F* Q' L: I
module_exit(led_platform_exit);$ n; A9 i& C) ?! J" W, O! R5 T1 v+ R8 |
0 b+ T) o& @$ w$ Z& L1 g. C
MODULE_DESCRIPTION("Led platform driver");
4 f- l1 Y  A( c8 G( Z: PMODULE_AUTHOR("Tronlong");# L0 Y! N) e2 s( y( C/ l. {
MODULE_LICENSE("GPL");9 ]& Z' L/ p1 ^" s# R
: Q0 u2 g2 L8 u4 x" A: }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 21:07 , Processed in 0.041933 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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