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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 _- k5 U5 I- c
#include <linux/init.h>- @" v5 j' W) [# v; J' R: y" c
#include <linux/module.h>* L" J0 A1 p. D3 h9 F
#include <linux/kernel.h>) [+ y7 Z; B9 L" X' A7 M
#include <linux/types.h>7 t) b. P) M  V. O( b' Q
#include <linux/gpio.h>3 H4 k' _$ X$ @7 n# w+ e: q/ K
#include <linux/leds.h>0 }- I: I  F& X0 u; \& B
#include <linux/platform_device.h>
+ L! v" ~5 M/ S& u0 k& R( C2 Z3 ^; U. W: D; i2 y
#include <asm/mach-types.h>
' @" ~3 i0 h* T6 k# r8 n# k#include <asm/mach/arch.h>9 z5 S- n6 E# Z% u2 g7 y* O
#include <mach/da8xx.h>9 ]6 _) f+ W! f$ i7 T, B- m
#include <mach/mux.h>
! }' t. {& V5 I. Y+ {9 j$ o7 o3 o" p+ B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 n+ [* k  f+ X1 ?% a9 ]4 }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 m! U+ X: d8 ]4 N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): K0 Z$ h! V0 C  J3 x. _' n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& Z% j# b; z3 F% t$ x2 c2 _
! M7 \1 \* i+ S/* assign the tl som board LED-GPIOs*/
2 f( @4 t& H* d; istatic const short da850_evm_tl_user_led_pins[] = {
. ?8 v2 f' N9 L6 m        /* These pins are definition at <mach/mux.h> file */1 n) D, t* W% L. Q+ c  I1 k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# e% Y3 C7 `/ q: p1 I: o        -1
& |- ?* Q8 N5 l( Q, f4 M) F: E};; W4 X& \; u4 I

: H/ r1 v- X8 J% Gstatic struct gpio_led da850_evm_tl_leds[] = {" G7 g/ Z% u8 t7 M! _0 _
        {, M4 N7 i) |' w3 Z9 b" ^
                .active_low = 0,
( }7 O! G. i; i) Z1 T8 ^9 b                .gpio = DA850_USER_LED0,
+ ~8 }8 I) b/ y0 I. n: ?- x3 Y                .name = "user_led0",/ s* @/ y* g- z( x/ {
                .default_trigger = "default-on",2 [# W1 H7 X) [4 t: ~( B
        },
' \) n4 \  K: M. X        {& c0 X) v7 b: V
                .active_low = 0,1 N2 P" E! b' c$ o4 {
                .gpio = DA850_USER_LED1,
9 T1 L6 Z1 b; N9 R% ~& X0 C; W" q, W8 _! r                .name = "user_led1",; C' y  Y5 o$ I1 A: N
                .default_trigger = "default-on",, D: Q4 i! F: [4 z# c' ^6 a5 X
        },
' {: u7 {& E/ Z) {4 I3 r# h        {3 q% h8 t4 Y: g0 o, z
                .active_low = 0,
6 k' k2 G; `$ l; U8 C" Z                .gpio = DA850_USER_LED2,5 u) |; c$ N) F- g% f; S
                .name = "user_led2",$ D( N/ T: r; N  ^7 x
                .default_trigger = "default-on",
1 q2 n2 r8 e; Y% q7 ?  L4 v        },2 I4 j2 U) Y  M5 c! b
        {- M1 }6 y$ {- P& p
                .active_low = 0,
8 H) t+ F/ ?' J                .gpio = DA850_USER_LED3,
  ~$ [" E& E1 M8 A3 D" o) q7 n                .name = "user_led3",+ V! g: p( p+ _! I% [, i' p# w
                .default_trigger = "default-on",
  m/ @  h8 o9 ]+ [, K+ i        },
& z- x. X8 E- Z};
4 L6 N; H! Y/ ]+ F3 M- r9 J2 B* O1 s: ]2 }6 A6 X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( z+ w/ Z" Y& R" N8 G& {        .leds = da850_evm_tl_leds,
0 D* i! L% W+ X5 W& @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 F' n( {& l( E7 e+ x& H};
7 i' h- }! ~6 G% X, e* |* |: c0 S( M8 {2 o; ~: n1 B& o& E1 [
static void led_dev_release(struct device *dev)
; p. o0 z% ?/ u* ~- C/ H+ z{
2 g: D7 ]; }( }$ S};( O" T( k/ _2 M
* ^4 ]/ F% O! n/ L+ ~! n4 L' K( v6 o
static struct platform_device da850_evm_tl_leds_device = {
+ g- k: }/ }  j        .name                = "leds-gpio",% T9 q) w6 l! U( w6 L3 b
        .id                = 1,0 E' X1 n' ^- l$ H/ P" e
        .dev = {
, ^% ~+ C' T9 k* U: u                .platform_data = &da850_evm_tl_leds_pdata,
( k. c3 K8 c$ ~$ s% V# @. T7 Q                .release = led_dev_release,
: N2 N* E( |: y" N: |1 k# E; j        }
+ d) W, f6 e) Y};# I: p3 n7 R7 q$ o

7 O6 v9 K# T4 S( Q# {8 E8 z( hstatic int __init led_platform_init(void)
3 ?; i" [* R  C- u& N{# U& a2 J/ [$ H; z6 k
        int ret;. U( Y* `6 y8 d  T( X
#if 0
" N8 q! k! a" c2 Z8 q/ [" S! m0 ~        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% n$ e. |' c- x$ n) J5 ^# e
        if (ret)
8 g: f$ E. h- ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 ]1 J; m4 J# I/ g! m+ i9 k. E
                                "%d\n", ret);
" K- I) F- a4 p  [' M1 T#endif" n+ y5 G6 S: j3 b! P4 v3 Q
        ret = platform_device_register(&da850_evm_tl_leds_device);# R/ c/ I1 b) `7 O* b. I! P
        if (ret)
8 u" Y) Z* i5 |2 u                pr_warning("Could not register som GPIO expander LEDS");0 L* C4 s; W  H/ H: ~! D. j7 [
        else
8 B, t" X( @; U0 p( k4 q& {                printk(KERN_INFO "LED register sucessful!\n");
0 n2 l# V" F' ]2 V0 v6 v3 A! z  |- \8 ^5 {! j
        return ret;
: b! d! V' ]  ?/ s! W}
$ G5 p7 @$ ^6 B, k: \# t0 U9 |/ B  Z# o$ }  V4 _, t& |8 P
static void __exit led_platform_exit(void)
' \0 _+ L9 G( K{# [- v) o# B! Q8 B; Y8 g% p$ I5 m6 A
        platform_device_unregister(&da850_evm_tl_leds_device);0 C  J, r  l" B9 \8 \
- m9 M% I# T' ]* h
        printk(KERN_INFO "LED unregister!\n");$ F: V* S3 I: m* E9 y: s+ G' Y- X, n
}
9 ?8 g8 z" x2 `. X$ H- x9 @/ L) h! |, K
module_init(led_platform_init);6 Q* }4 T; O! }
module_exit(led_platform_exit);
" T* v  F% Q5 `/ G  s" `* D) A3 G& e
MODULE_DESCRIPTION("Led platform driver");* U3 H% y; R5 T4 q9 D3 _
MODULE_AUTHOR("Tronlong");: i8 S  d- r" j% K
MODULE_LICENSE("GPL");
' a$ w; j1 ~1 R3 J! o5 X
$ a* I, [9 r  _; w9 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 13:54 , Processed in 0.044225 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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